Update ART Module prebuilts to build 8098820.

Taken from branch aosp-master-art, target mainline_modules_sdks.

CL prepared by packages/modules/ArtPrebuilt/update-art-module-prebuilts.py.

Test: Presubmits
Bug: 211750879
Change-Id: I371ab884a76a0e5235112a5528b4be7d9567b1d9
diff --git a/current/host-exports/include/art/libartbase/base/file_utils.h b/current/host-exports/include/art/libartbase/base/file_utils.h
index 97abc73..c1c45bc 100644
--- a/current/host-exports/include/art/libartbase/base/file_utils.h
+++ b/current/host-exports/include/art/libartbase/base/file_utils.h
@@ -69,6 +69,10 @@
 // Find $ART_APEX_DATA, /data/misc/apexdata/com.android.art, or abort.
 std::string GetArtApexData();
 
+// Returns the directory that contains the prebuilt version of the primary boot image (i.e., the one
+// generated at build time).
+std::string GetPrebuiltPrimaryBootImageDir();
+
 // Returns the default boot image location (ANDROID_ROOT/framework/boot.art).
 // Returns an empty string if ANDROID_ROOT is not set.
 std::string GetDefaultBootImageLocation(std::string* error_msg);
diff --git a/current/host-exports/include/system/libbase/include/android-base/result.h b/current/host-exports/include/system/libbase/include/android-base/result.h
index 62a12ae..a5016b9 100644
--- a/current/host-exports/include/system/libbase/include/android-base/result.h
+++ b/current/host-exports/include/system/libbase/include/android-base/result.h
@@ -124,7 +124,7 @@
   }
 };
 
-template <typename E = Errno>
+template <typename E = Errno, bool include_message = true>
 struct ResultError {
   template <typename T, typename P, typename = std::enable_if_t<std::is_convertible_v<P, E>>>
   ResultError(T&& message, P&& code)
@@ -145,6 +145,22 @@
 };
 
 template <typename E>
+struct ResultError<E, /* include_message */ false> {
+  template <typename P, typename = std::enable_if_t<std::is_convertible_v<P, E>>>
+  ResultError(P&& code) : code_(E(std::forward<P>(code))) {}
+
+  template <typename T>
+  operator android::base::expected<T, ResultError<E, false>>() const {
+    return android::base::unexpected(ResultError<E, false>(code_));
+  }
+
+  const E& code() const { return code_; }
+
+ private:
+  E code_;
+};
+
+template <typename E>
 inline bool operator==(const ResultError<E>& lhs, const ResultError<E>& rhs) {
   return lhs.message() == rhs.message() && lhs.code() == rhs.code();
 }
@@ -160,7 +176,22 @@
   return os;
 }
 
-template <typename E = Errno, typename = std::enable_if_t<!std::is_same_v<E, int>>>
+namespace internal {
+// Stream class that does nothing and is has zero (actually 1) size. It is used instead of
+// std::stringstream when include_message is false so that we use less on stack.
+// sizeof(std::stringstream) is 280 on arm64.
+struct DoNothingStream {
+  template <typename T>
+  DoNothingStream& operator<<(T&&) {
+    return *this;
+  }
+
+  std::string str() const { return ""; }
+};
+}  // namespace internal
+
+template <typename E = Errno, bool include_message = true,
+          typename = std::enable_if_t<!std::is_same_v<E, int>>>
 class Error {
  public:
   Error() : code_(0), has_code_(false) {}
@@ -174,8 +205,15 @@
     return android::base::unexpected(ResultError<P>(str(), static_cast<P>(code_)));
   }
 
+  template <typename T, typename P, typename = std::enable_if_t<std::is_convertible_v<E, P>>>
+  // NOLINTNEXTLINE(google-explicit-constructor)
+  operator android::base::expected<T, ResultError<P, false>>() const {
+    return android::base::unexpected(ResultError<P, false>(static_cast<P>(code_)));
+  }
+
   template <typename T>
   Error& operator<<(T&& t) {
+    static_assert(include_message, "<< not supported when include_message = false");
     // NOLINTNEXTLINE(bugprone-suspicious-semicolon)
     if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<T>>, ResultError<E>>) {
       if (!has_code_) {
@@ -190,6 +228,7 @@
   }
 
   const std::string str() const {
+    static_assert(include_message, "str() not supported when include_message = false");
     std::string str = ss_.str();
     if (has_code_) {
       if (str.empty()) {
@@ -216,7 +255,7 @@
     (*this) << message;
   }
 
-  std::stringstream ss_;
+  std::conditional_t<include_message, std::stringstream, internal::DoNothingStream> ss_;
   E code_;
   const bool has_code_;
 };
@@ -253,8 +292,8 @@
 #define Errorf(fmt, ...) android::base::ErrorfImpl(FMT_STRING(fmt), ##__VA_ARGS__)
 #define ErrnoErrorf(fmt, ...) android::base::ErrnoErrorfImpl(FMT_STRING(fmt), ##__VA_ARGS__)
 
-template <typename T, typename E = Errno>
-using Result = android::base::expected<T, ResultError<E>>;
+template <typename T, typename E = Errno, bool include_message = true>
+using Result = android::base::expected<T, ResultError<E, include_message>>;
 
 // Specialization of android::base::OkOrFail<V> for V = Result<T, E>. See android-base/errors.h
 // for the contract.
diff --git a/current/host-exports/x86_64/bin/dex2oat64 b/current/host-exports/x86_64/bin/dex2oat64
index 3e3bcf3..00cd958 100755
--- a/current/host-exports/x86_64/bin/dex2oat64
+++ b/current/host-exports/x86_64/bin/dex2oat64
Binary files differ
diff --git a/current/host-exports/x86_64/bin/dex2oatd64 b/current/host-exports/x86_64/bin/dex2oatd64
index c0a57a4..55235b3 100755
--- a/current/host-exports/x86_64/bin/dex2oatd64
+++ b/current/host-exports/x86_64/bin/dex2oatd64
Binary files differ
diff --git a/current/host-exports/x86_64/bin/hiddenapi b/current/host-exports/x86_64/bin/hiddenapi
index b8517e2..f9a9292 100755
--- a/current/host-exports/x86_64/bin/hiddenapi
+++ b/current/host-exports/x86_64/bin/hiddenapi
Binary files differ
diff --git a/current/host-exports/x86_64/bin/oatdump b/current/host-exports/x86_64/bin/oatdump
index c263e59..d2b61e0 100755
--- a/current/host-exports/x86_64/bin/oatdump
+++ b/current/host-exports/x86_64/bin/oatdump
Binary files differ
diff --git a/current/host-exports/x86_64/bin/profman b/current/host-exports/x86_64/bin/profman
index 2e35ea2..6cc873f 100755
--- a/current/host-exports/x86_64/bin/profman
+++ b/current/host-exports/x86_64/bin/profman
Binary files differ
diff --git a/current/host-exports/x86_64/lib/libartbase.a b/current/host-exports/x86_64/lib/libartbase.a
index 5eb021e..44264e8 100644
--- a/current/host-exports/x86_64/lib/libartbase.a
+++ b/current/host-exports/x86_64/lib/libartbase.a
Binary files differ
diff --git a/current/host-exports/x86_64/lib/libartbase.so b/current/host-exports/x86_64/lib/libartbase.so
index ffe0555..fefffd7 100755
--- a/current/host-exports/x86_64/lib/libartbase.so
+++ b/current/host-exports/x86_64/lib/libartbase.so
Binary files differ
diff --git a/current/sdk/Android.bp b/current/sdk/Android.bp
index fd6a4a5..0ff93ea 100644
--- a/current/sdk/Android.bp
+++ b/current/sdk/Android.bp
@@ -2155,9 +2155,11 @@
         "//frameworks/base/packages/Connectivity/tests/integration",
         "//frameworks/base/packages/Tethering:__subpackages__",
         "//frameworks/libs/net/common/native/bpfmapjni",
+        "//frameworks/libs/net/common/native/bpfutiljni",
         "//libcore:__subpackages__",
         "//libnativehelper:__subpackages__",
         "//packages/modules/Connectivity/Tethering:__subpackages__",
+        "//packages/modules/Connectivity/service",
         "//packages/modules/Connectivity/tests:__subpackages__",
         "//packages/modules/ExtServices:__subpackages__",
         "//packages/modules/NetworkStack:__subpackages__",
@@ -2212,9 +2214,11 @@
         "//frameworks/base/packages/Connectivity/tests/integration",
         "//frameworks/base/packages/Tethering:__subpackages__",
         "//frameworks/libs/net/common/native/bpfmapjni",
+        "//frameworks/libs/net/common/native/bpfutiljni",
         "//libcore:__subpackages__",
         "//libnativehelper:__subpackages__",
         "//packages/modules/Connectivity/Tethering:__subpackages__",
+        "//packages/modules/Connectivity/service",
         "//packages/modules/Connectivity/tests:__subpackages__",
         "//packages/modules/ExtServices:__subpackages__",
         "//packages/modules/NetworkStack:__subpackages__",
diff --git a/current/sdk/android/arm/lib/libdexfile_static.a b/current/sdk/android/arm/lib/libdexfile_static.a
index 1c90859..c72ad50 100644
--- a/current/sdk/android/arm/lib/libdexfile_static.a
+++ b/current/sdk/android/arm/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libdexfile_static.a b/current/sdk/android/arm64/lib/libdexfile_static.a
index b95f1b7..f6afcd3 100644
--- a/current/sdk/android/arm64/lib/libdexfile_static.a
+++ b/current/sdk/android/arm64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/x86/lib/libdexfile_static.a b/current/sdk/android/x86/lib/libdexfile_static.a
index 3948253..25f42a8 100644
--- a/current/sdk/android/x86/lib/libdexfile_static.a
+++ b/current/sdk/android/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libdexfile_static.a b/current/sdk/android/x86_64/lib/libdexfile_static.a
index 21e2405..92edb85 100644
--- a/current/sdk/android/x86_64/lib/libdexfile_static.a
+++ b/current/sdk/android/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/common_os/include/art/libartbase/base/file_utils.h b/current/sdk/common_os/include/art/libartbase/base/file_utils.h
index 97abc73..c1c45bc 100644
--- a/current/sdk/common_os/include/art/libartbase/base/file_utils.h
+++ b/current/sdk/common_os/include/art/libartbase/base/file_utils.h
@@ -69,6 +69,10 @@
 // Find $ART_APEX_DATA, /data/misc/apexdata/com.android.art, or abort.
 std::string GetArtApexData();
 
+// Returns the directory that contains the prebuilt version of the primary boot image (i.e., the one
+// generated at build time).
+std::string GetPrebuiltPrimaryBootImageDir();
+
 // Returns the default boot image location (ANDROID_ROOT/framework/boot.art).
 // Returns an empty string if ANDROID_ROOT is not set.
 std::string GetDefaultBootImageLocation(std::string* error_msg);
diff --git a/current/sdk/common_os/include/system/libbase/include/android-base/result.h b/current/sdk/common_os/include/system/libbase/include/android-base/result.h
index 62a12ae..a5016b9 100644
--- a/current/sdk/common_os/include/system/libbase/include/android-base/result.h
+++ b/current/sdk/common_os/include/system/libbase/include/android-base/result.h
@@ -124,7 +124,7 @@
   }
 };
 
-template <typename E = Errno>
+template <typename E = Errno, bool include_message = true>
 struct ResultError {
   template <typename T, typename P, typename = std::enable_if_t<std::is_convertible_v<P, E>>>
   ResultError(T&& message, P&& code)
@@ -145,6 +145,22 @@
 };
 
 template <typename E>
+struct ResultError<E, /* include_message */ false> {
+  template <typename P, typename = std::enable_if_t<std::is_convertible_v<P, E>>>
+  ResultError(P&& code) : code_(E(std::forward<P>(code))) {}
+
+  template <typename T>
+  operator android::base::expected<T, ResultError<E, false>>() const {
+    return android::base::unexpected(ResultError<E, false>(code_));
+  }
+
+  const E& code() const { return code_; }
+
+ private:
+  E code_;
+};
+
+template <typename E>
 inline bool operator==(const ResultError<E>& lhs, const ResultError<E>& rhs) {
   return lhs.message() == rhs.message() && lhs.code() == rhs.code();
 }
@@ -160,7 +176,22 @@
   return os;
 }
 
-template <typename E = Errno, typename = std::enable_if_t<!std::is_same_v<E, int>>>
+namespace internal {
+// Stream class that does nothing and is has zero (actually 1) size. It is used instead of
+// std::stringstream when include_message is false so that we use less on stack.
+// sizeof(std::stringstream) is 280 on arm64.
+struct DoNothingStream {
+  template <typename T>
+  DoNothingStream& operator<<(T&&) {
+    return *this;
+  }
+
+  std::string str() const { return ""; }
+};
+}  // namespace internal
+
+template <typename E = Errno, bool include_message = true,
+          typename = std::enable_if_t<!std::is_same_v<E, int>>>
 class Error {
  public:
   Error() : code_(0), has_code_(false) {}
@@ -174,8 +205,15 @@
     return android::base::unexpected(ResultError<P>(str(), static_cast<P>(code_)));
   }
 
+  template <typename T, typename P, typename = std::enable_if_t<std::is_convertible_v<E, P>>>
+  // NOLINTNEXTLINE(google-explicit-constructor)
+  operator android::base::expected<T, ResultError<P, false>>() const {
+    return android::base::unexpected(ResultError<P, false>(static_cast<P>(code_)));
+  }
+
   template <typename T>
   Error& operator<<(T&& t) {
+    static_assert(include_message, "<< not supported when include_message = false");
     // NOLINTNEXTLINE(bugprone-suspicious-semicolon)
     if constexpr (std::is_same_v<std::remove_cv_t<std::remove_reference_t<T>>, ResultError<E>>) {
       if (!has_code_) {
@@ -190,6 +228,7 @@
   }
 
   const std::string str() const {
+    static_assert(include_message, "str() not supported when include_message = false");
     std::string str = ss_.str();
     if (has_code_) {
       if (str.empty()) {
@@ -216,7 +255,7 @@
     (*this) << message;
   }
 
-  std::stringstream ss_;
+  std::conditional_t<include_message, std::stringstream, internal::DoNothingStream> ss_;
   E code_;
   const bool has_code_;
 };
@@ -253,8 +292,8 @@
 #define Errorf(fmt, ...) android::base::ErrorfImpl(FMT_STRING(fmt), ##__VA_ARGS__)
 #define ErrnoErrorf(fmt, ...) android::base::ErrnoErrorfImpl(FMT_STRING(fmt), ##__VA_ARGS__)
 
-template <typename T, typename E = Errno>
-using Result = android::base::expected<T, ResultError<E>>;
+template <typename T, typename E = Errno, bool include_message = true>
+using Result = android::base::expected<T, ResultError<E, include_message>>;
 
 // Specialization of android::base::OkOrFail<V> for V = Result<T, E>. See android-base/errors.h
 // for the contract.
diff --git a/current/sdk/hiddenapi/filtered-flags.csv b/current/sdk/hiddenapi/filtered-flags.csv
index f5ddd39..c0b59d0 100644
--- a/current/sdk/hiddenapi/filtered-flags.csv
+++ b/current/sdk/hiddenapi/filtered-flags.csv
@@ -8829,11 +8829,11 @@
 Ljava/lang/invoke/MethodHandle;->SGET:I,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->SPUT:I,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->artFieldOrMethod:J,lo-prio,max-target-o
+Ljava/lang/invoke/MethodHandle;->asCollector(ILjava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->asCollector(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandle;->asCollectorChecks(Ljava/lang/Class;I)Z,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->asFixedArity()Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandle;->asSpreader(ILjava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->asSpreader(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandle;->asSpreaderChecks(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->asType(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->asVarargsCollector(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->bindTo(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
@@ -8846,13 +8846,13 @@
 Ljava/lang/invoke/MethodHandle;->invokeWithArguments(Ljava/util/List;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->invokeWithArguments([Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->isVarargsCollector()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandle;->nominalType:Ljava/lang/invoke/MethodType;,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->spreadArrayChecks(Ljava/lang/Class;I)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->transform(Ldalvik/system/EmulatedStackFrame;)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->transformInternal(Ldalvik/system/EmulatedStackFrame;)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandle;->type()Ljava/lang/invoke/MethodType;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->type:Ljava/lang/invoke/MethodType;,lo-prio,max-target-o
+Ljava/lang/invoke/MethodHandle;->withVarargs(Z)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;-><init>(Ljava/lang/reflect/Member;Ljava/lang/invoke/MethodHandle;)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->getDeclaringClass()Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->getMethodType()Ljava/lang/invoke/MethodType;,core-platform-api,public-api,sdk,system-api,test-api
@@ -8939,6 +8939,7 @@
 Ljava/lang/invoke/MethodHandles$Lookup;->unreflectSpecial(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;->unreflectVarHandle(Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles;-><init>()V,lo-prio,max-target-o
+Ljava/lang/invoke/MethodHandles;->arrayConstructor(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->arrayElementGetter(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->arrayElementGetter([BI)B,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandles;->arrayElementGetter([CI)C,lo-prio,max-target-o
@@ -8958,6 +8959,7 @@
 Ljava/lang/invoke/MethodHandles;->arrayElementSetter([SIS)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandles;->arrayElementSetter([ZIZ)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandles;->arrayElementVarHandle(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles;->arrayLength(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->byteArrayViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->byteBufferViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->catchException(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
@@ -9027,8 +9029,6 @@
 Ljava/lang/invoke/MethodType;->NO_PTYPES:[Ljava/lang/Class;,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->appendParameterTypes(Ljava/util/List;)Ljava/lang/invoke/MethodType;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodType;->appendParameterTypes([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodType;->asCollectorType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;,lo-prio,max-target-o
-Ljava/lang/invoke/MethodType;->asSpreaderType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->canConvert(Ljava/lang/Class;Ljava/lang/Class;)Z,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->canConvertParameters([Ljava/lang/Class;[Ljava/lang/Class;)Z,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->changeParameterType(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;,core-platform-api,public-api,sdk,system-api,test-api
@@ -9057,7 +9057,7 @@
 Ljava/lang/invoke/MethodType;->internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->isConvertibleTo(Ljava/lang/invoke/MethodType;)Z,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->isGeneric()Z,lo-prio,max-target-o
-Ljava/lang/invoke/MethodType;->lastParameterType()Ljava/lang/Class;,lo-prio,max-target-o
+Ljava/lang/invoke/MethodType;->lastParameterType()Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodType;->leadingReferenceParameter()Ljava/lang/Class;,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->listToArray(Ljava/util/List;)[Ljava/lang/Class;,lo-prio,max-target-o
 Ljava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;,lo-prio,max-target-o
@@ -9173,11 +9173,7 @@
 Ljava/lang/invoke/Transformers$CollectArguments;->stackFrameOffset:I,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$CollectArguments;->target:Ljava/lang/invoke/MethodHandle;,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$CollectArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Collector;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;I)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Collector;->arrayOffset:I,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Collector;->arrayTypeChar:C,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Collector;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Collector;->numArrayArgs:I,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Collector;->target:Ljava/lang/invoke/MethodHandle;,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Collector;->transform(Ldalvik/system/EmulatedStackFrame;)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Constant;-><init>(Ljava/lang/Class;Ljava/lang/Object;)V,lo-prio,max-target-o
@@ -9272,20 +9268,8 @@
 Ljava/lang/invoke/Transformers$ReferenceIdentity;-><init>(Ljava/lang/Class;)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$ReferenceIdentity;->transform(Ldalvik/system/EmulatedStackFrame;)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$ReferenceIdentity;->type:Ljava/lang/Class;,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;I)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Spreader;->arrayOffset:I,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->arrayTypeChar:C,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Spreader;->numArrayArgs:I,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([BLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([CLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([DLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([FLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ILdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([JLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([Ljava/lang/Object;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([SLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ZLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Spreader;->target:Ljava/lang/invoke/MethodHandle;,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Spreader;->transform(Ldalvik/system/EmulatedStackFrame;)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$Transformer;-><init>(Ljava/lang/invoke/MethodType;)V,lo-prio,max-target-o
@@ -9313,6 +9297,7 @@
 Ljava/lang/invoke/Transformers$VarargsCollector;->target:Ljava/lang/invoke/MethodHandle;,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$VarargsCollector;->throwWrongMethodTypeException(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers$VarargsCollector;->transform(Ldalvik/system/EmulatedStackFrame;)V,lo-prio,max-target-o
+Ljava/lang/invoke/Transformers$VarargsCollector;->withVarargs(Z)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/Transformers;-><init>()V,lo-prio,max-target-o
 Ljava/lang/invoke/Transformers;->TRANSFORM_INTERNAL:Ljava/lang/reflect/Method;,lo-prio,max-target-o
 Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_EXCHANGE:Ljava/lang/invoke/VarHandle$AccessMode;,core-platform-api,public-api,sdk,system-api,test-api
@@ -9475,6 +9460,7 @@
 Ljava/lang/ref/Reference;->queueNext:Ljava/lang/ref/Reference;,lo-prio,max-target-o
 Ljava/lang/ref/Reference;->reachabilityFence(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ref/Reference;->referent:Ljava/lang/Object;,unsupported
+Ljava/lang/ref/Reference;->refersTo(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ref/Reference;->slowPathEnabled:Z,lo-prio,max-target-o
 Ljava/lang/ref/ReferenceQueue;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ref/ReferenceQueue;->add(Ljava/lang/ref/Reference;)V,max-target-r
@@ -15054,6 +15040,7 @@
 Ljava/security/interfaces/RSAPrivateKey;->serialVersionUID:J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAPublicKey;->getPublicExponent()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAPublicKey;->serialVersionUID:J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/security/interfaces/XECKey;->getParams()Ljava/security/spec/AlgorithmParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/DSAParameterSpec;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/DSAParameterSpec;->g:Ljava/math/BigInteger;,lo-prio,max-target-o
 Ljava/security/spec/DSAParameterSpec;->getG()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
@@ -15165,6 +15152,10 @@
 Ljava/security/spec/MGF1ParameterSpec;->SHA512:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->getDigestAlgorithm()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->mdName:Ljava/lang/String;,lo-prio,max-target-o
+Ljava/security/spec/NamedParameterSpec;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/security/spec/NamedParameterSpec;->X25519:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/security/spec/NamedParameterSpec;->X448:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/security/spec/NamedParameterSpec;->getName()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/PKCS8EncodedKeySpec;->getEncoded()[B,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/PKCS8EncodedKeySpec;->getFormat()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
diff --git a/current/sdk/hiddenapi/filtered-stub-flags.csv b/current/sdk/hiddenapi/filtered-stub-flags.csv
index 1e8dc2d..739d5d5 100644
--- a/current/sdk/hiddenapi/filtered-stub-flags.csv
+++ b/current/sdk/hiddenapi/filtered-stub-flags.csv
@@ -16322,8 +16322,11 @@
 Ldalvik/system/DexPathList;->systemNativeLibraryDirectories:Ljava/util/List;
 Ldalvik/system/DexPathList;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ldalvik/system/DexPathList;->zipSeparator:Ljava/lang/String;
+Ldalvik/system/EmulatedStackFrame$Range;-><clinit>()V
 Ldalvik/system/EmulatedStackFrame$Range;-><init>(IIII)V
+Ldalvik/system/EmulatedStackFrame$Range;->EMPTY_RANGE:Ldalvik/system/EmulatedStackFrame$Range;
 Ldalvik/system/EmulatedStackFrame$Range;->all(Ljava/lang/invoke/MethodType;)Ldalvik/system/EmulatedStackFrame$Range;
+Ldalvik/system/EmulatedStackFrame$Range;->from(Ljava/lang/invoke/MethodType;I)Ldalvik/system/EmulatedStackFrame$Range;
 Ldalvik/system/EmulatedStackFrame$Range;->numBytes:I
 Ldalvik/system/EmulatedStackFrame$Range;->numReferences:I
 Ldalvik/system/EmulatedStackFrame$Range;->of(Ljava/lang/invoke/MethodType;II)Ldalvik/system/EmulatedStackFrame$Range;
@@ -16375,6 +16378,7 @@
 Ldalvik/system/EmulatedStackFrame;->getCallsiteType()Ljava/lang/invoke/MethodType;
 Ldalvik/system/EmulatedStackFrame;->getMethodType()Ljava/lang/invoke/MethodType;
 Ldalvik/system/EmulatedStackFrame;->getReference(ILjava/lang/Class;)Ljava/lang/Object;
+Ldalvik/system/EmulatedStackFrame;->getReferenceIndex(I)I
 Ldalvik/system/EmulatedStackFrame;->getSize(Ljava/lang/Class;)I
 Ldalvik/system/EmulatedStackFrame;->is64BitPrimitive(Ljava/lang/Class;)Z
 Ldalvik/system/EmulatedStackFrame;->references:[Ljava/lang/Object;
@@ -16904,6 +16908,7 @@
 Ljava/io/Bits;->putInt([BII)V
 Ljava/io/Bits;->putLong([BIJ)V
 Ljava/io/Bits;->putShort([BIS)V
+Ljava/io/BufferedInputStream$$ExternalSyntheticBackportWithForwarding0;->m(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
 Ljava/io/BufferedInputStream;-><clinit>()V
 Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V,core-platform-api,public-api,system-api,test-api
 Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V,core-platform-api,public-api,system-api,test-api
@@ -21896,12 +21901,16 @@
 Ljava/lang/invoke/MethodHandle;->SGET:I
 Ljava/lang/invoke/MethodHandle;->SPUT:I
 Ljava/lang/invoke/MethodHandle;->artFieldOrMethod:J
+Ljava/lang/invoke/MethodHandle;->asCollector(ILjava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->asCollector(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandle;->asCollectorChecks(Ljava/lang/Class;I)Z
+Ljava/lang/invoke/MethodHandle;->asCollectorChecks(Ljava/lang/Class;II)Z
 Ljava/lang/invoke/MethodHandle;->asFixedArity()Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandle;->asSpreader(ILjava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->asSpreader(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandle;->asSpreaderChecks(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodHandle;->asSpreaderChecks(Ljava/lang/Class;II)Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/MethodHandle;->asType(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandle;->asTypeCache:Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/MethodHandle;->asTypeCached(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/MethodHandle;->asTypeUncached(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/MethodHandle;->asVarargsCollector(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->bindTo(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
@@ -21914,7 +21923,6 @@
 Ljava/lang/invoke/MethodHandle;->invokeWithArguments(Ljava/util/List;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->invokeWithArguments([Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->isVarargsCollector()Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandle;->nominalType:Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/MethodHandle;->spreadArrayChecks(Ljava/lang/Class;I)V
 Ljava/lang/invoke/MethodHandle;->standardString()Ljava/lang/String;
 Ljava/lang/invoke/MethodHandle;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -21922,6 +21930,7 @@
 Ljava/lang/invoke/MethodHandle;->transformInternal(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/MethodHandle;->type()Ljava/lang/invoke/MethodType;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandle;->type:Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodHandle;->withVarargs(Z)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;-><init>(Ljava/lang/reflect/Member;Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->getDeclaringClass()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->getMethodType()Ljava/lang/invoke/MethodType;,core-platform-api,public-api,system-api,test-api
@@ -22046,6 +22055,7 @@
 Ljava/lang/invoke/MethodHandles$Lookup;->unreflectVarHandle(Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles;-><init>()V
 Ljava/lang/invoke/MethodHandles;->access$000(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleImpl;
+Ljava/lang/invoke/MethodHandles;->arrayConstructor(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->arrayElementGetter(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->arrayElementGetter([BI)B
 Ljava/lang/invoke/MethodHandles;->arrayElementGetter([CI)C
@@ -22065,6 +22075,7 @@
 Ljava/lang/invoke/MethodHandles;->arrayElementSetter([SIS)V
 Ljava/lang/invoke/MethodHandles;->arrayElementSetter([ZIZ)V
 Ljava/lang/invoke/MethodHandles;->arrayElementVarHandle(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles;->arrayLength(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->byteArrayViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->byteBufferViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles;->catchException(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
@@ -22136,8 +22147,8 @@
 Ljava/lang/invoke/MethodType;->NO_PTYPES:[Ljava/lang/Class;
 Ljava/lang/invoke/MethodType;->appendParameterTypes(Ljava/util/List;)Ljava/lang/invoke/MethodType;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodType;->appendParameterTypes([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodType;->asCollectorType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->asSpreaderType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->asCollectorType(Ljava/lang/Class;II)Ljava/lang/invoke/MethodType;
+Ljava/lang/invoke/MethodType;->asSpreaderType(Ljava/lang/Class;II)Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/MethodType;->canConvert(Ljava/lang/Class;Ljava/lang/Class;)Z
 Ljava/lang/invoke/MethodType;->canConvertParameters([Ljava/lang/Class;[Ljava/lang/Class;)Z
 Ljava/lang/invoke/MethodType;->changeParameterType(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;,core-platform-api,public-api,system-api,test-api
@@ -22166,7 +22177,7 @@
 Ljava/lang/invoke/MethodType;->internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;
 Ljava/lang/invoke/MethodType;->isConvertibleTo(Ljava/lang/invoke/MethodType;)Z
 Ljava/lang/invoke/MethodType;->isGeneric()Z
-Ljava/lang/invoke/MethodType;->lastParameterType()Ljava/lang/Class;
+Ljava/lang/invoke/MethodType;->lastParameterType()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodType;->leadingReferenceParameter()Ljava/lang/Class;
 Ljava/lang/invoke/MethodType;->listToArray(Ljava/util/List;)[Ljava/lang/Class;
 Ljava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
@@ -22269,6 +22280,29 @@
 Ljava/lang/invoke/Transformers$AlwaysThrow;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$AlwaysThrow;->exceptionType:Ljava/lang/Class;
 Ljava/lang/invoke/Transformers$AlwaysThrow;->transform(Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$ArrayConstructor;-><init>(Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$ArrayConstructor;->componentType:Ljava/lang/Class;
+Ljava/lang/invoke/Transformers$ArrayConstructor;->transform(Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$ArrayLength;-><init>(Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$ArrayLength;->arrayType:Ljava/lang/Class;
+Ljava/lang/invoke/Transformers$ArrayLength;->transform(Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->adaptArgument(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->adaptArguments(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->adaptReturnValue(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->getBoxedPrimitiveClass(C)Ljava/lang/Class;
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->target:Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->throwClassCastException(Ljava/lang/Class;Ljava/lang/Class;)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->throwWrongMethodTypeException()V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->transform(Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveByteAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;CB)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveCharAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;CC)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveDoubleAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;CD)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveFloatAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;CF)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveIntAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;CI)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveLongAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;CJ)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveShortAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;CS)V
+Ljava/lang/invoke/Transformers$AsTypeAdapter;->writePrimitiveVoidAs(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;C)V
 Ljava/lang/invoke/Transformers$BindTo;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Object;)V
 Ljava/lang/invoke/Transformers$BindTo;->delegate:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$BindTo;->range:Ldalvik/system/EmulatedStackFrame$Range;
@@ -22290,12 +22324,13 @@
 Ljava/lang/invoke/Transformers$CollectArguments;->stackFrameOffset:I
 Ljava/lang/invoke/Transformers$CollectArguments;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$CollectArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Collector;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;I)V
+Ljava/lang/invoke/Transformers$Collector;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;II)V
+Ljava/lang/invoke/Transformers$Collector;->arrayLength:I
 Ljava/lang/invoke/Transformers$Collector;->arrayOffset:I
-Ljava/lang/invoke/Transformers$Collector;->arrayTypeChar:C
-Ljava/lang/invoke/Transformers$Collector;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$Collector;->numArrayArgs:I
+Ljava/lang/invoke/Transformers$Collector;->arrayType:Ljava/lang/Class;
+Ljava/lang/invoke/Transformers$Collector;->leadingRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$Collector;->target:Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/Transformers$Collector;->trailingRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$Collector;->transform(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/Transformers$Constant;-><init>(Ljava/lang/Class;Ljava/lang/Object;)V
 Ljava/lang/invoke/Transformers$Constant;->asDouble:D
@@ -22392,28 +22427,24 @@
 Ljava/lang/invoke/Transformers$ReferenceIdentity;-><init>(Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$ReferenceIdentity;->transform(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/Transformers$ReferenceIdentity;->type:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$Spreader;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;I)V
+Ljava/lang/invoke/Transformers$Spreader;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;II)V
 Ljava/lang/invoke/Transformers$Spreader;->arrayOffset:I
-Ljava/lang/invoke/Transformers$Spreader;->arrayTypeChar:C
-Ljava/lang/invoke/Transformers$Spreader;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
+Ljava/lang/invoke/Transformers$Spreader;->componentType:Ljava/lang/Class;
+Ljava/lang/invoke/Transformers$Spreader;->leadingRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$Spreader;->numArrayArgs:I
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([BLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([CLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([DLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([FLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ILdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([JLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([Ljava/lang/Object;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([SLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ZLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
 Ljava/lang/invoke/Transformers$Spreader;->target:Ljava/lang/invoke/MethodHandle;
+Ljava/lang/invoke/Transformers$Spreader;->trailingRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$Spreader;->transform(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/Transformers$Transformer;-><init>(Ljava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/Transformers$Transformer;-><init>(Ljava/lang/invoke/MethodType;I)V
 Ljava/lang/invoke/Transformers$Transformer;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/Transformers$Transformer;->invokeExactFromTransform(Ljava/lang/invoke/MethodHandle;Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$Transformer;->invokeFromTransform(Ljava/lang/invoke/MethodHandle;Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/Transformers$VarargsCollector;-><init>(Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/Transformers$VarargsCollector;->arityArgumentsConvertible([Ljava/lang/Class;ILjava/lang/Class;)Z
+Ljava/lang/invoke/Transformers$VarargsCollector;->arrayType:Ljava/lang/Class;
 Ljava/lang/invoke/Transformers$VarargsCollector;->asFixedArity()Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/Transformers$VarargsCollector;->asTypeUncached(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$VarargsCollector;->booleanArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
 Ljava/lang/invoke/Transformers$VarargsCollector;->byteArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
 Ljava/lang/invoke/Transformers$VarargsCollector;->charArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
@@ -22433,6 +22464,7 @@
 Ljava/lang/invoke/Transformers$VarargsCollector;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$VarargsCollector;->throwWrongMethodTypeException(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/Transformers$VarargsCollector;->transform(Ldalvik/system/EmulatedStackFrame;)V
+Ljava/lang/invoke/Transformers$VarargsCollector;->withVarargs(Z)Ljava/lang/invoke/MethodHandle;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/Transformers;-><clinit>()V
 Ljava/lang/invoke/Transformers;-><init>()V
 Ljava/lang/invoke/Transformers;->TRANSFORM_INTERNAL:Ljava/lang/reflect/Method;
@@ -22621,7 +22653,7 @@
 Ljava/lang/ref/Reference;->queueNext:Ljava/lang/ref/Reference;
 Ljava/lang/ref/Reference;->reachabilityFence(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ref/Reference;->referent:Ljava/lang/Object;
-Ljava/lang/ref/Reference;->refersTo(Ljava/lang/Object;)Z
+Ljava/lang/ref/Reference;->refersTo(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ref/Reference;->refersTo0(Ljava/lang/Object;)Z
 Ljava/lang/ref/Reference;->slowPathEnabled:Z
 Ljava/lang/ref/ReferenceQueue;-><clinit>()V
@@ -29627,6 +29659,7 @@
 Ljava/security/interfaces/RSAPrivateKey;->serialVersionUID:J,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAPublicKey;->getPublicExponent()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAPublicKey;->serialVersionUID:J,core-platform-api,public-api,system-api,test-api
+Ljava/security/interfaces/XECKey;->getParams()Ljava/security/spec/AlgorithmParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/DSAParameterSpec;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/DSAParameterSpec;->g:Ljava/math/BigInteger;
 Ljava/security/spec/DSAParameterSpec;->getG()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
@@ -29740,6 +29773,12 @@
 Ljava/security/spec/MGF1ParameterSpec;->SHA512:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->getDigestAlgorithm()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->mdName:Ljava/lang/String;
+Ljava/security/spec/NamedParameterSpec;-><clinit>()V
+Ljava/security/spec/NamedParameterSpec;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
+Ljava/security/spec/NamedParameterSpec;->X25519:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,system-api,test-api
+Ljava/security/spec/NamedParameterSpec;->X448:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,system-api,test-api
+Ljava/security/spec/NamedParameterSpec;->getName()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/security/spec/NamedParameterSpec;->name:Ljava/lang/String;
 Ljava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/PKCS8EncodedKeySpec;->getEncoded()[B,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/PKCS8EncodedKeySpec;->getFormat()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -68124,6 +68163,8 @@
 Lsun/invoke/util/VerifyAccess;->isSamePackage(Ljava/lang/Class;Ljava/lang/Class;)Z
 Lsun/invoke/util/VerifyAccess;->isSamePackageMember(Ljava/lang/Class;Ljava/lang/Class;)Z
 Lsun/invoke/util/VerifyAccess;->isSubClass(Ljava/lang/Class;Ljava/lang/Class;)Z
+Lsun/invoke/util/Wrapper$1;->$SwitchMap$sun$invoke$util$Wrapper:[I
+Lsun/invoke/util/Wrapper$1;-><clinit>()V
 Lsun/invoke/util/Wrapper$Format;->$assertionsDisabled:Z
 Lsun/invoke/util/Wrapper$Format;-><clinit>()V
 Lsun/invoke/util/Wrapper$Format;-><init>()V
@@ -68150,12 +68191,15 @@
 Lsun/invoke/util/Wrapper;->$VALUES:[Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->$assertionsDisabled:Z
 Lsun/invoke/util/Wrapper;-><clinit>()V
-Lsun/invoke/util/Wrapper;-><init>(Ljava/lang/String;ILjava/lang/Class;Ljava/lang/Class;CLjava/lang/Object;Ljava/lang/Object;I)V
+Lsun/invoke/util/Wrapper;-><init>(Ljava/lang/String;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;CLjava/lang/Object;I)V
 Lsun/invoke/util/Wrapper;->BOOLEAN:Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->BYTE:Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->CHAR:Lsun/invoke/util/Wrapper;
+Lsun/invoke/util/Wrapper;->COUNT:I
 Lsun/invoke/util/Wrapper;->DOUBLE:Lsun/invoke/util/Wrapper;
+Lsun/invoke/util/Wrapper;->DOUBLE_ZERO:Ljava/lang/Object;
 Lsun/invoke/util/Wrapper;->FLOAT:Lsun/invoke/util/Wrapper;
+Lsun/invoke/util/Wrapper;->FLOAT_ZERO:Ljava/lang/Object;
 Lsun/invoke/util/Wrapper;->FROM_CHAR:[Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->FROM_PRIM:[Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->FROM_WRAP:[Lsun/invoke/util/Wrapper;
@@ -68184,6 +68228,7 @@
 Lsun/invoke/util/Wrapper;->findWrapperType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->forBasicType(C)Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->forBasicType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
+Lsun/invoke/util/Wrapper;->forPrimitiveType(C)Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->forPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->forWrapperType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
 Lsun/invoke/util/Wrapper;->forceType(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
@@ -68224,7 +68269,6 @@
 Lsun/invoke/util/Wrapper;->wrapperType:Ljava/lang/Class;
 Lsun/invoke/util/Wrapper;->zero()Ljava/lang/Object;
 Lsun/invoke/util/Wrapper;->zero(Ljava/lang/Class;)Ljava/lang/Object;
-Lsun/invoke/util/Wrapper;->zero:Ljava/lang/Object;
 Lsun/misc/ASCIICaseInsensitiveComparator;->$assertionsDisabled:Z
 Lsun/misc/ASCIICaseInsensitiveComparator;-><clinit>()V
 Lsun/misc/ASCIICaseInsensitiveComparator;-><init>()V
diff --git a/current/sdk/hiddenapi/signature-patterns.csv b/current/sdk/hiddenapi/signature-patterns.csv
index 29ef313..3a2d30c 100644
--- a/current/sdk/hiddenapi/signature-patterns.csv
+++ b/current/sdk/hiddenapi/signature-patterns.csv
@@ -1667,6 +1667,7 @@
 java/security/interfaces/RSAPrivateCrtKey
 java/security/interfaces/RSAPrivateKey
 java/security/interfaces/RSAPublicKey
+java/security/interfaces/XECKey
 java/security/spec/DSAParameterSpec
 java/security/spec/DSAPrivateKeySpec
 java/security/spec/DSAPublicKeySpec
@@ -1683,6 +1684,7 @@
 java/security/spec/InvalidKeySpecException
 java/security/spec/InvalidParameterSpecException
 java/security/spec/MGF1ParameterSpec
+java/security/spec/NamedParameterSpec
 java/security/spec/PKCS8EncodedKeySpec
 java/security/spec/PSSParameterSpec
 java/security/spec/RSAKeyGenParameterSpec
diff --git a/current/sdk/java/art.module.intra.core.api.stubs.jar b/current/sdk/java/art.module.intra.core.api.stubs.jar
index 6fda64a..2f9198c 100644
--- a/current/sdk/java/art.module.intra.core.api.stubs.jar
+++ b/current/sdk/java/art.module.intra.core.api.stubs.jar
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libdexfile_static.a b/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
index 569380a..0c44a34 100644
--- a/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
+++ b/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libnativehelper.so b/current/sdk/linux_glibc/x86/lib/libnativehelper.so
index 385b267..21ee4ba 100755
--- a/current/sdk/linux_glibc/x86/lib/libnativehelper.so
+++ b/current/sdk/linux_glibc/x86/lib/libnativehelper.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a b/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
index 9b7d4ad..2e7df6b 100644
--- a/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
+++ b/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so b/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
index 505f258..a43c327 100755
--- a/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
+++ b/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
Binary files differ
diff --git a/current/sdk/sdk_library/module-lib/art.module.public.api-stubs.jar b/current/sdk/sdk_library/module-lib/art.module.public.api-stubs.jar
index a2f2cd9..1b4f73e 100644
--- a/current/sdk/sdk_library/module-lib/art.module.public.api-stubs.jar
+++ b/current/sdk/sdk_library/module-lib/art.module.public.api-stubs.jar
Binary files differ
diff --git a/current/sdk/sdk_library/module-lib/art.module.public.api.srcjar b/current/sdk/sdk_library/module-lib/art.module.public.api.srcjar
index 74e413a..1ac3b94 100644
--- a/current/sdk/sdk_library/module-lib/art.module.public.api.srcjar
+++ b/current/sdk/sdk_library/module-lib/art.module.public.api.srcjar
Binary files differ
diff --git a/current/sdk/sdk_library/public/art.module.public.api-stubs.jar b/current/sdk/sdk_library/public/art.module.public.api-stubs.jar
index b976b45..715c6da 100644
--- a/current/sdk/sdk_library/public/art.module.public.api-stubs.jar
+++ b/current/sdk/sdk_library/public/art.module.public.api-stubs.jar
Binary files differ
diff --git a/current/sdk/sdk_library/public/art.module.public.api.srcjar b/current/sdk/sdk_library/public/art.module.public.api.srcjar
index fd4e8cf0..f9ece13 100644
--- a/current/sdk/sdk_library/public/art.module.public.api.srcjar
+++ b/current/sdk/sdk_library/public/art.module.public.api.srcjar
Binary files differ
diff --git a/current/sdk/sdk_library/public/art.module.public.api.txt b/current/sdk/sdk_library/public/art.module.public.api.txt
index f59c065..9d47369 100644
--- a/current/sdk/sdk_library/public/art.module.public.api.txt
+++ b/current/sdk/sdk_library/public/art.module.public.api.txt
@@ -4290,8 +4290,10 @@
 
   public abstract class MethodHandle {
     method public java.lang.invoke.MethodHandle asCollector(Class<?>, int);
+    method public java.lang.invoke.MethodHandle asCollector(int, Class<?>, int);
     method public java.lang.invoke.MethodHandle asFixedArity();
     method public java.lang.invoke.MethodHandle asSpreader(Class<?>, int);
+    method public java.lang.invoke.MethodHandle asSpreader(int, Class<?>, int);
     method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
     method public java.lang.invoke.MethodHandle asVarargsCollector(Class<?>);
     method public java.lang.invoke.MethodHandle bindTo(Object);
@@ -4301,6 +4303,7 @@
     method public Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
     method public boolean isVarargsCollector();
     method public java.lang.invoke.MethodType type();
+    method public java.lang.invoke.MethodHandle withVarargs(boolean);
   }
 
   public interface MethodHandleInfo {
@@ -4328,9 +4331,11 @@
   }
 
   public class MethodHandles {
+    method public static java.lang.invoke.MethodHandle arrayConstructor(Class<?>) throws java.lang.IllegalArgumentException;
     method public static java.lang.invoke.MethodHandle arrayElementGetter(Class<?>) throws java.lang.IllegalArgumentException;
     method public static java.lang.invoke.MethodHandle arrayElementSetter(Class<?>) throws java.lang.IllegalArgumentException;
     method public static java.lang.invoke.VarHandle arrayElementVarHandle(Class<?>) throws java.lang.IllegalArgumentException;
+    method public static java.lang.invoke.MethodHandle arrayLength(Class<?>) throws java.lang.IllegalArgumentException;
     method public static java.lang.invoke.VarHandle byteArrayViewVarHandle(Class<?>, java.nio.ByteOrder) throws java.lang.IllegalArgumentException;
     method public static java.lang.invoke.VarHandle byteBufferViewVarHandle(Class<?>, java.nio.ByteOrder) throws java.lang.IllegalArgumentException;
     method public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
@@ -4401,6 +4406,7 @@
     method public boolean hasWrappers();
     method public java.lang.invoke.MethodType insertParameterTypes(int, Class<?>...);
     method public java.lang.invoke.MethodType insertParameterTypes(int, java.util.List<java.lang.Class<?>>);
+    method public Class<?> lastParameterType();
     method public static java.lang.invoke.MethodType methodType(Class<?>, Class<?>[]);
     method public static java.lang.invoke.MethodType methodType(Class<?>, java.util.List<java.lang.Class<?>>);
     method public static java.lang.invoke.MethodType methodType(Class<?>, Class<?>, Class<?>...);
@@ -4542,6 +4548,7 @@
     method public T get();
     method @Deprecated public boolean isEnqueued();
     method public static void reachabilityFence(Object);
+    method public final boolean refersTo(T);
   }
 
   public class ReferenceQueue<T> {
@@ -8786,6 +8793,10 @@
     field public static final long serialVersionUID = -8727434096241101194L; // 0x86e1ecedeceab676L
   }
 
+  public interface XECKey {
+    method public java.security.spec.AlgorithmParameterSpec getParams();
+  }
+
 }
 
 package java.security.spec {
@@ -8908,6 +8919,13 @@
     field public static final java.security.spec.MGF1ParameterSpec SHA512;
   }
 
+  public class NamedParameterSpec implements java.security.spec.AlgorithmParameterSpec {
+    ctor public NamedParameterSpec(@NonNull String);
+    method @NonNull public String getName();
+    field public static final java.security.spec.NamedParameterSpec X25519;
+    field public static final java.security.spec.NamedParameterSpec X448;
+  }
+
   public class PKCS8EncodedKeySpec extends java.security.spec.EncodedKeySpec {
     ctor public PKCS8EncodedKeySpec(byte[]);
     method public final String getFormat();
diff --git a/current/sdk/sdk_library/system/art.module.public.api-stubs.jar b/current/sdk/sdk_library/system/art.module.public.api-stubs.jar
index a9f1488..4b33b67 100644
--- a/current/sdk/sdk_library/system/art.module.public.api-stubs.jar
+++ b/current/sdk/sdk_library/system/art.module.public.api-stubs.jar
Binary files differ
diff --git a/current/sdk/sdk_library/system/art.module.public.api.srcjar b/current/sdk/sdk_library/system/art.module.public.api.srcjar
index a4f9534..acc6b56 100644
--- a/current/sdk/sdk_library/system/art.module.public.api.srcjar
+++ b/current/sdk/sdk_library/system/art.module.public.api.srcjar
Binary files differ
diff --git a/current/test-exports/Android.bp b/current/test-exports/Android.bp
index 49c672b..fcc1d72 100644
--- a/current/test-exports/Android.bp
+++ b/current/test-exports/Android.bp
@@ -62,6 +62,7 @@
         "//frameworks/base/location/tests/locationtests",
         "//frameworks/base/wifi/tests",
         "//libcore",
+        "//libcore/luni/src/test/java9compatibility",
         "//packages/modules/Wifi/framework/tests",
         "//prebuilts:__subpackages__",
     ],
@@ -88,6 +89,7 @@
         "//frameworks/base/location/tests/locationtests",
         "//frameworks/base/wifi/tests",
         "//libcore",
+        "//libcore/luni/src/test/java9compatibility",
         "//packages/modules/Wifi/framework/tests",
         "//prebuilts:__subpackages__",
     ],
diff --git a/current/test-exports/java/core-libart-for-host.jar b/current/test-exports/java/core-libart-for-host.jar
index f8db322..200cb1f 100644
--- a/current/test-exports/java/core-libart-for-host.jar
+++ b/current/test-exports/java/core-libart-for-host.jar
Binary files differ
diff --git a/current/test-exports/java/core-ojtests-public.jar b/current/test-exports/java/core-ojtests-public.jar
index 7bae83b..3fd7084 100644
--- a/current/test-exports/java/core-ojtests-public.jar
+++ b/current/test-exports/java/core-ojtests-public.jar
Binary files differ
diff --git a/current/test-exports/java/core-tests.jar b/current/test-exports/java/core-tests.jar
index da7c989..6fde18a 100644
--- a/current/test-exports/java/core-tests.jar
+++ b/current/test-exports/java/core-tests.jar
Binary files differ