Merge "Use consistent addresses in SSLCertificateSocketFactoryTest."
diff --git a/Cronet/tests/cts/OWNERS b/Cronet/tests/OWNERS
similarity index 100%
rename from Cronet/tests/cts/OWNERS
rename to Cronet/tests/OWNERS
diff --git a/Cronet/tests/common/Android.bp b/Cronet/tests/common/Android.bp
index 939a81c..5d2f6e5 100644
--- a/Cronet/tests/common/Android.bp
+++ b/Cronet/tests/common/Android.bp
@@ -28,7 +28,6 @@
     name: "NetHttpCoverageTests",
     defaults: ["CronetTestJavaDefaults"],
     enforce_default_target_sdk_version: true,
-    sdk_version: "test_current",
     min_sdk_version: "30",
     test_suites: ["general-tests", "mts-tethering"],
     static_libs: [
@@ -36,6 +35,9 @@
         "CtsNetHttpTestsLib",
         "NetHttpTestsLibPreJarJar",
     ],
-    jarjar_rules: ":framework-tethering-jarjar-rules",
+    jarjar_rules: ":net-http-test-jarjar-rules",
     compile_multilib: "both", // Include both the 32 and 64 bit versions
+    jni_libs: [
+       "cronet_aml_components_cronet_android_cronet_tests__testing"
+    ],
 }
diff --git a/Cronet/tests/cts/Android.bp b/Cronet/tests/cts/Android.bp
index d969b54..7b440cd 100644
--- a/Cronet/tests/cts/Android.bp
+++ b/Cronet/tests/cts/Android.bp
@@ -64,6 +64,7 @@
         "junit",
         "hamcrest-library",
         "kotlin-test",
+        "mockito-target",
     ],
     libs: [
         "android.test.base",
diff --git a/Cronet/tests/cts/src/android/net/http/cts/ConnectionMigrationOptionsTest.kt b/Cronet/tests/cts/src/android/net/http/cts/ConnectionMigrationOptionsTest.kt
index 77cb30e..219db61 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/ConnectionMigrationOptionsTest.kt
+++ b/Cronet/tests/cts/src/android/net/http/cts/ConnectionMigrationOptionsTest.kt
@@ -32,37 +32,37 @@
         val options =
                 ConnectionMigrationOptions.Builder().build()
 
-        assertEquals(MIGRATION_OPTION_UNSPECIFIED, options.allowNonDefaultNetworkUsageEnabled)
-        assertEquals(MIGRATION_OPTION_UNSPECIFIED, options.defaultNetworkMigrationEnabled)
-        assertEquals(MIGRATION_OPTION_UNSPECIFIED, options.pathDegradationMigrationEnabled)
+        assertEquals(MIGRATION_OPTION_UNSPECIFIED, options.allowNonDefaultNetworkUsage)
+        assertEquals(MIGRATION_OPTION_UNSPECIFIED, options.defaultNetworkMigration)
+        assertEquals(MIGRATION_OPTION_UNSPECIFIED, options.pathDegradationMigration)
     }
 
     @Test
     fun testConnectionMigrationOptions_enableDefaultNetworkMigration_returnSetValue() {
         val options =
             ConnectionMigrationOptions.Builder()
-                    .setDefaultNetworkMigrationEnabled(MIGRATION_OPTION_ENABLED)
+                    .setDefaultNetworkMigration(MIGRATION_OPTION_ENABLED)
                     .build()
 
-        assertEquals(MIGRATION_OPTION_ENABLED, options.defaultNetworkMigrationEnabled)
+        assertEquals(MIGRATION_OPTION_ENABLED, options.defaultNetworkMigration)
     }
 
     @Test
     fun testConnectionMigrationOptions_enablePathDegradationMigration_returnSetValue() {
         val options =
             ConnectionMigrationOptions.Builder()
-                    .setPathDegradationMigrationEnabled(MIGRATION_OPTION_ENABLED)
+                    .setPathDegradationMigration(MIGRATION_OPTION_ENABLED)
                     .build()
 
-        assertEquals(MIGRATION_OPTION_ENABLED, options.pathDegradationMigrationEnabled)
+        assertEquals(MIGRATION_OPTION_ENABLED, options.pathDegradationMigration)
     }
 
     @Test
     fun testConnectionMigrationOptions_allowNonDefaultNetworkUsage_returnSetValue() {
         val options =
                 ConnectionMigrationOptions.Builder()
-                        .setAllowNonDefaultNetworkUsageEnabled(MIGRATION_OPTION_ENABLED).build()
+                        .setAllowNonDefaultNetworkUsage(MIGRATION_OPTION_ENABLED).build()
 
-        assertEquals(MIGRATION_OPTION_ENABLED, options.allowNonDefaultNetworkUsageEnabled)
+        assertEquals(MIGRATION_OPTION_ENABLED, options.allowNonDefaultNetworkUsage)
     }
 }
diff --git a/Cronet/tests/cts/src/android/net/http/cts/DnsOptionsTest.kt b/Cronet/tests/cts/src/android/net/http/cts/DnsOptionsTest.kt
index 7b17ca6..6f4a979 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/DnsOptionsTest.kt
+++ b/Cronet/tests/cts/src/android/net/http/cts/DnsOptionsTest.kt
@@ -34,22 +34,22 @@
     fun testDnsOptions_defaultValues() {
         val options = DnsOptions.Builder().build()
 
-        assertEquals(DNS_OPTION_UNSPECIFIED, options.persistHostCacheEnabled)
+        assertEquals(DNS_OPTION_UNSPECIFIED, options.persistHostCache)
         assertNull(options.persistHostCachePeriod)
-        assertEquals(DNS_OPTION_UNSPECIFIED, options.staleDnsEnabled)
+        assertEquals(DNS_OPTION_UNSPECIFIED, options.staleDns)
         assertNull(options.staleDnsOptions)
-        assertEquals(DNS_OPTION_UNSPECIFIED, options.useHttpStackDnsResolverEnabled)
+        assertEquals(DNS_OPTION_UNSPECIFIED, options.useHttpStackDnsResolver)
         assertEquals(DNS_OPTION_UNSPECIFIED,
-                options.preestablishConnectionsToStaleDnsResultsEnabled)
+                options.preestablishConnectionsToStaleDnsResults)
     }
 
     @Test
     fun testDnsOptions_persistHostCache_returnSetValue() {
         val options = DnsOptions.Builder()
-                .setPersistHostCacheEnabled(DNS_OPTION_ENABLED)
+                .setPersistHostCache(DNS_OPTION_ENABLED)
                 .build()
 
-        assertEquals(DNS_OPTION_ENABLED, options.persistHostCacheEnabled)
+        assertEquals(DNS_OPTION_ENABLED, options.persistHostCache)
     }
 
     @Test
@@ -63,47 +63,62 @@
     @Test
     fun testDnsOptions_enableStaleDns_returnSetValue() {
         val options = DnsOptions.Builder()
-                .setStaleDnsEnabled(DNS_OPTION_ENABLED)
+                .setStaleDns(DNS_OPTION_ENABLED)
                 .build()
 
-        assertEquals(DNS_OPTION_ENABLED, options.staleDnsEnabled)
+        assertEquals(DNS_OPTION_ENABLED, options.staleDns)
     }
 
     @Test
     fun testDnsOptions_useHttpStackDnsResolver_returnsSetValue() {
         val options = DnsOptions.Builder()
-                .setUseHttpStackDnsResolverEnabled(DNS_OPTION_ENABLED)
+                .setUseHttpStackDnsResolver(DNS_OPTION_ENABLED)
                 .build()
 
-        assertEquals(DNS_OPTION_ENABLED, options.useHttpStackDnsResolverEnabled)
+        assertEquals(DNS_OPTION_ENABLED, options.useHttpStackDnsResolver)
     }
 
     @Test
     fun testDnsOptions_preestablishConnectionsToStaleDnsResults_returnsSetValue() {
         val options = DnsOptions.Builder()
-                .setPreestablishConnectionsToStaleDnsResultsEnabled(DNS_OPTION_ENABLED)
+                .setPreestablishConnectionsToStaleDnsResults(DNS_OPTION_ENABLED)
                 .build()
 
         assertEquals(DNS_OPTION_ENABLED,
-                options.preestablishConnectionsToStaleDnsResultsEnabled)
+                options.preestablishConnectionsToStaleDnsResults)
+    }
+
+    @Test
+    fun testDnsOptions_setStaleDnsOptions_returnsSetValues() {
+        val staleOptions = DnsOptions.StaleDnsOptions.Builder()
+                .setAllowCrossNetworkUsage(DNS_OPTION_ENABLED)
+                .setFreshLookupTimeout(Duration.ofMillis(1234))
+                .build()
+        val options = DnsOptions.Builder()
+                .setStaleDns(DNS_OPTION_ENABLED)
+                .setStaleDnsOptions(staleOptions)
+                .build()
+
+        assertEquals(DNS_OPTION_ENABLED, options.staleDns)
+        assertEquals(staleOptions, options.staleDnsOptions)
     }
 
     @Test
     fun testStaleDnsOptions_defaultValues() {
         val options = DnsOptions.StaleDnsOptions.Builder().build()
 
-        assertEquals(DNS_OPTION_UNSPECIFIED, options.allowCrossNetworkUsageEnabled)
+        assertEquals(DNS_OPTION_UNSPECIFIED, options.allowCrossNetworkUsage)
         assertNull(options.freshLookupTimeout)
         assertNull(options.maxExpiredDelay)
-        assertEquals(DNS_OPTION_UNSPECIFIED, options.useStaleOnNameNotResolvedEnabled)
+        assertEquals(DNS_OPTION_UNSPECIFIED, options.useStaleOnNameNotResolved)
     }
 
     @Test
     fun testStaleDnsOptions_allowCrossNetworkUsage_returnsSetValue() {
         val options = DnsOptions.StaleDnsOptions.Builder()
-                .setAllowCrossNetworkUsageEnabled(DNS_OPTION_ENABLED).build()
+                .setAllowCrossNetworkUsage(DNS_OPTION_ENABLED).build()
 
-        assertEquals(DNS_OPTION_ENABLED, options.allowCrossNetworkUsageEnabled)
+        assertEquals(DNS_OPTION_ENABLED, options.allowCrossNetworkUsage)
     }
 
     @Test
@@ -118,10 +133,10 @@
     @Test
     fun testStaleDnsOptions_useStaleOnNameNotResolved_returnsSetValue() {
         val options = DnsOptions.StaleDnsOptions.Builder()
-                .setUseStaleOnNameNotResolvedEnabled(DNS_OPTION_ENABLED)
+                .setUseStaleOnNameNotResolved(DNS_OPTION_ENABLED)
                 .build()
 
-        assertEquals(DNS_OPTION_ENABLED, options.useStaleOnNameNotResolvedEnabled)
+        assertEquals(DNS_OPTION_ENABLED, options.useStaleOnNameNotResolved)
     }
 
     @Test
diff --git a/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java b/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java
index d247201..ed86854 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java
+++ b/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java
@@ -26,10 +26,15 @@
 import static org.hamcrest.Matchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
+import android.net.Network;
+import android.net.http.ConnectionMigrationOptions;
+import android.net.http.DnsOptions;
 import android.net.http.HttpEngine;
+import android.net.http.QuicOptions;
 import android.net.http.UrlRequest;
 import android.net.http.UrlResponseInfo;
 import android.net.http.cts.util.HttpCtsTestServer;
@@ -43,6 +48,12 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+
+import java.time.Instant;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Set;
 
 @RunWith(AndroidJUnit4.class)
 public class HttpEngineTest {
@@ -51,6 +62,7 @@
 
     private HttpEngine.Builder mEngineBuilder;
     private TestUrlRequestCallback mCallback;
+    private HttpCtsTestServer mTestServer;
     private UrlRequest mRequest;
     private HttpEngine mEngine;
     private Context mContext;
@@ -61,6 +73,7 @@
         skipIfNoInternetConnection(mContext);
         mEngineBuilder = new HttpEngine.Builder(mContext);
         mCallback = new TestUrlRequestCallback();
+        mTestServer = new HttpCtsTestServer(mContext);
     }
 
     @After
@@ -72,6 +85,9 @@
         if (mEngine != null) {
             mEngine.shutdown();
         }
+        if (mTestServer != null) {
+            mTestServer.shutdown();
+        }
     }
 
     private boolean isQuic(String negotiatedProtocol) {
@@ -96,22 +112,21 @@
 
     @Test
     public void testHttpEngine_EnableHttpCache() {
-        // We need a server which sets cache-control != no-cache.
-        String url = "https://www.example.com";
+        String url = mTestServer.getCacheableTestDownloadUrl(
+                /* downloadId */ "cacheable-download",
+                /* numBytes */ 10);
         mEngine =
                 mEngineBuilder
                         .setStoragePath(mContext.getApplicationInfo().dataDir)
-                        .setEnableHttpCache(HttpEngine.Builder.HTTP_CACHE_DISK,
-                                            /* maxSize */ 100 * 1024)
+                        .setEnableHttpCache(
+                                HttpEngine.Builder.HTTP_CACHE_DISK, /* maxSize */ 100 * 1024)
                         .build();
 
         UrlRequest.Builder builder =
                 mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
-        // This tests uses a non-hermetic server. Instead of asserting, assume the next callback.
-        // This way, if the request were to fail, the test would just be skipped instead of failing.
-        mCallback.assumeCallback(ResponseStep.ON_SUCCEEDED);
+        mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
         UrlResponseInfo info = mCallback.mResponseInfo;
         assumeOKStatusCode(info);
         assertFalse(info.wasCached());
@@ -120,7 +135,7 @@
         builder = mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
-        mCallback.assumeCallback(ResponseStep.ON_SUCCEEDED);
+        mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
         info = mCallback.mResponseInfo;
         assertOKStatusCode(info);
         assertTrue(info.wasCached());
@@ -144,11 +159,12 @@
 
     @Test
     public void testHttpEngine_EnablePublicKeyPinningBypassForLocalTrustAnchors() {
+        String url = mTestServer.getSuccessUrl();
         // For known hosts, requests should succeed whether we're bypassing the local trust anchor
         // or not.
         mEngine = mEngineBuilder.setEnablePublicKeyPinningBypassForLocalTrustAnchors(false).build();
         UrlRequest.Builder builder =
-                mEngine.newUrlRequestBuilder(URL, mCallback.getExecutor(), mCallback);
+                mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
         mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
@@ -156,7 +172,7 @@
         mEngine.shutdown();
         mEngine = mEngineBuilder.setEnablePublicKeyPinningBypassForLocalTrustAnchors(true).build();
         mCallback = new TestUrlRequestCallback();
-        builder = mEngine.newUrlRequestBuilder(URL, mCallback.getExecutor(), mCallback);
+        builder = mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
         mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
@@ -172,6 +188,38 @@
         // server.
     }
 
+    private byte[] generateSha256() {
+        byte[] sha256 = new byte[32];
+        Arrays.fill(sha256, (byte) 58);
+        return sha256;
+    }
+
+    private Instant instantInFuture(int secondsIntoFuture) {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.SECOND, secondsIntoFuture);
+        return cal.getTime().toInstant();
+    }
+
+    @Test
+    public void testHttpEngine_AddPublicKeyPins() {
+        // CtsTestServer, when set in SslMode.NO_CLIENT_AUTH (required to trigger
+        // certificate verification, needed by this test), uses a certificate that
+        // doesn't match the hostname. For this reason, CtsTestServer cannot be used
+        // by this test.
+        Instant expirationInstant = instantInFuture(/* secondsIntoFuture */ 100);
+        boolean includeSubdomains = true;
+        Set<byte[]> pinsSha256 = Set.of(generateSha256());
+        mEngine = mEngineBuilder.addPublicKeyPins(
+                HOST, pinsSha256, includeSubdomains, expirationInstant).build();
+
+        UrlRequest.Builder builder =
+                mEngine.newUrlRequestBuilder(URL, mCallback.getExecutor(), mCallback);
+        mRequest = builder.build();
+        mRequest.start();
+        mCallback.expectCallback(ResponseStep.ON_FAILED);
+        assertNotNull("Expected an error", mCallback.mError);
+    }
+
     @Test
     public void testHttpEngine_EnableQuic() throws Exception {
         mEngine = mEngineBuilder.setEnableQuic(true).addQuicHint(HOST, 443, 443).build();
@@ -202,6 +250,7 @@
     @Test
     public void testHttpEngine_GetDefaultUserAgent() throws Exception {
         assertThat(mEngineBuilder.getDefaultUserAgent(), containsString("AndroidHttpClient"));
+        assertThat(mEngineBuilder.getDefaultUserAgent()).contains(HttpEngine.getVersionString());
     }
 
     @Test
@@ -249,8 +298,130 @@
     private static String extractUserAgent(String userAgentResponseBody) {
         // If someone wants to be evil and have the title HTML tag a part of the user agent,
         // they'll have to fix this method :)
-        return userAgentResponseBody
-                .replaceFirst(".*<title>", "")
-                .replaceFirst("</title>.*", "");
+        return userAgentResponseBody.replaceFirst(".*<title>", "").replaceFirst("</title>.*", "");
+    }
+
+    @Test
+    public void testHttpEngine_bindToNetwork() throws Exception {
+        // Create a fake Android.net.Network. Since that network doesn't exist, binding to
+        // that should end up in a failed request.
+        Network mockNetwork = Mockito.mock(Network.class);
+        Mockito.when(mockNetwork.getNetworkHandle()).thenReturn(123L);
+        String url = mTestServer.getSuccessUrl();
+
+        mEngine = mEngineBuilder.build();
+        mEngine.bindToNetwork(mockNetwork);
+        UrlRequest.Builder builder =
+                mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
+        mRequest = builder.build();
+        mRequest.start();
+
+        mCallback.expectCallback(ResponseStep.ON_FAILED);
+    }
+
+    @Test
+    public void testHttpEngine_unbindFromNetwork() throws Exception {
+        // Create a fake Android.net.Network. Since that network doesn't exist, binding to
+        // that should end up in a failed request.
+        Network mockNetwork = Mockito.mock(Network.class);
+        Mockito.when(mockNetwork.getNetworkHandle()).thenReturn(123L);
+        String url = mTestServer.getSuccessUrl();
+
+        mEngine = mEngineBuilder.build();
+        // Bind to the fake network but then unbind. This should result in a successful
+        // request.
+        mEngine.bindToNetwork(mockNetwork);
+        mEngine.bindToNetwork(null);
+        UrlRequest.Builder builder =
+                mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
+        mRequest = builder.build();
+        mRequest.start();
+
+        mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
+        UrlResponseInfo info = mCallback.mResponseInfo;
+        assertOKStatusCode(info);
+    }
+
+    @Test
+    public void testHttpEngine_setConnectionMigrationOptions_requestSucceeds() {
+        ConnectionMigrationOptions options = new ConnectionMigrationOptions.Builder().build();
+        mEngine = mEngineBuilder.setConnectionMigrationOptions(options).build();
+        UrlRequest.Builder builder =
+                mEngine.newUrlRequestBuilder(
+                        mTestServer.getSuccessUrl(), mCallback.getExecutor(), mCallback);
+        mRequest = builder.build();
+        mRequest.start();
+
+        mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
+        UrlResponseInfo info = mCallback.mResponseInfo;
+        assertOKStatusCode(info);
+    }
+
+    @Test
+    public void testHttpEngine_setDnsOptions_requestSucceeds() {
+        DnsOptions options = new DnsOptions.Builder().build();
+        mEngine = mEngineBuilder.setDnsOptions(options).build();
+        UrlRequest.Builder builder =
+                mEngine.newUrlRequestBuilder(
+                        mTestServer.getSuccessUrl(), mCallback.getExecutor(), mCallback);
+        mRequest = builder.build();
+        mRequest.start();
+
+        mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
+        UrlResponseInfo info = mCallback.mResponseInfo;
+        assertOKStatusCode(info);
+    }
+
+    @Test
+    public void getVersionString_notEmpty() {
+        assertThat(HttpEngine.getVersionString()).isNotEmpty();
+    }
+
+    @Test
+    public void testHttpEngine_SetQuicOptions_RequestSucceedsWithQuic() throws Exception {
+        QuicOptions options = new QuicOptions.Builder().build();
+        mEngine = mEngineBuilder
+                .setEnableQuic(true)
+                .addQuicHint(HOST, 443, 443)
+                .setQuicOptions(options)
+                .build();
+
+        // The hint doesn't guarantee that QUIC will win the race, just that it will race TCP.
+        // We send multiple requests to reduce the flakiness of the test.
+        boolean quicWasUsed = false;
+        for (int i = 0; i < 5; i++) {
+            mCallback = new TestUrlRequestCallback();
+            UrlRequest.Builder builder =
+                    mEngine.newUrlRequestBuilder(URL, mCallback.getExecutor(), mCallback);
+            mRequest = builder.build();
+            mRequest.start();
+            mCallback.blockForDone();
+
+            quicWasUsed = isQuic(mCallback.mResponseInfo.getNegotiatedProtocol());
+            if (quicWasUsed) {
+                break;
+            }
+        }
+
+        assertTrue(quicWasUsed);
+        // This tests uses a non-hermetic server. Instead of asserting, assume the next callback.
+        // This way, if the request were to fail, the test would just be skipped instead of failing.
+        assumeOKStatusCode(mCallback.mResponseInfo);
+    }
+
+    @Test
+    public void testHttpEngine_enableBrotli_brotliAdvertised() {
+        mEngine = mEngineBuilder.setEnableBrotli(true).build();
+        mRequest =
+                mEngine.newUrlRequestBuilder(
+                        mTestServer.getEchoHeadersUrl(), mCallback.getExecutor(), mCallback)
+                        .build();
+        mRequest.start();
+
+        mCallback.assumeCallback(ResponseStep.ON_SUCCEEDED);
+        UrlResponseInfo info = mCallback.mResponseInfo;
+        assertThat(info.getHeaders().getAsMap().get("x-request-header-Accept-Encoding").toString())
+                .contains("br");
+        assertOKStatusCode(info);
     }
 }
diff --git a/Cronet/tests/cts/src/android/net/http/cts/QuicExceptionTest.kt b/Cronet/tests/cts/src/android/net/http/cts/QuicExceptionTest.kt
new file mode 100644
index 0000000..4b7aa14
--- /dev/null
+++ b/Cronet/tests/cts/src/android/net/http/cts/QuicExceptionTest.kt
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2023 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.http.cts
+
+import android.net.http.QuicException
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import kotlin.test.Test
+import kotlin.test.assertEquals
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class QuicExceptionTest {
+
+    @Test
+    fun testQuicException_returnsInputParameters() {
+        val message = "failed"
+        val cause = Throwable("thrown")
+        val quicException =
+            object : QuicException(message, cause) {
+                override fun getErrorCode() = 0
+                override fun isImmediatelyRetryable() = false
+            }
+
+        assertEquals(message, quicException.message)
+        assertEquals(cause, quicException.cause)
+    }
+
+    // TODO: add test for QuicException triggered from HttpEngine
+}
diff --git a/Cronet/tests/cts/src/android/net/http/cts/QuicOptionsTest.kt b/Cronet/tests/cts/src/android/net/http/cts/QuicOptionsTest.kt
index 5f9b7d4..0b02aa7 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/QuicOptionsTest.kt
+++ b/Cronet/tests/cts/src/android/net/http/cts/QuicOptionsTest.kt
@@ -18,6 +18,10 @@
 import android.net.http.QuicOptions
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
+import java.time.Duration
+import kotlin.test.assertFailsWith
+import kotlin.test.assertFalse
+import kotlin.test.assertTrue
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -28,9 +32,11 @@
         val quicOptions = QuicOptions.Builder().build()
         assertThat(quicOptions.allowedQuicHosts).isEmpty()
         assertThat(quicOptions.handshakeUserAgent).isNull()
-        // TODO(danstahr): idleConnectionTimeout getter should be public
-        // assertThat(quicOptions.idleConnectionTimeout).isNull()
-        assertThat(quicOptions.inMemoryServerConfigsCacheSize).isNull()
+        assertThat(quicOptions.idleConnectionTimeout).isNull()
+        assertFalse(quicOptions.hasInMemoryServerConfigsCacheSize())
+        assertFailsWith(IllegalStateException::class) {
+            quicOptions.inMemoryServerConfigsCacheSize
+        }
     }
 
     @Test
@@ -46,8 +52,6 @@
                 .inOrder()
     }
 
-    // TODO(danstahr): idleConnectionTimeout getter should be public
-    /*
     @Test
     fun testQuicOptions_idleConnectionTimeout_returnsSetValue() {
         val timeout = Duration.ofMinutes(10)
@@ -57,14 +61,24 @@
         assertThat(quicOptions.idleConnectionTimeout)
                 .isEqualTo(timeout)
     }
-    */
 
     @Test
     fun testQuicOptions_inMemoryServerConfigsCacheSize_returnsSetValue() {
         val quicOptions = QuicOptions.Builder()
                 .setInMemoryServerConfigsCacheSize(42)
                 .build()
+        assertTrue(quicOptions.hasInMemoryServerConfigsCacheSize())
         assertThat(quicOptions.inMemoryServerConfigsCacheSize)
                 .isEqualTo(42)
     }
+
+    @Test
+    fun testQuicOptions_handshakeUserAgent_returnsSetValue() {
+        val userAgent = "test"
+        val quicOptions = QuicOptions.Builder()
+            .setHandshakeUserAgent(userAgent)
+            .build()
+        assertThat(quicOptions.handshakeUserAgent)
+            .isEqualTo(userAgent)
+    }
 }
diff --git a/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java b/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java
index a364e29..422f4d5 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java
+++ b/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java
@@ -29,21 +29,23 @@
 import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
+import android.net.http.HeaderBlock;
 import android.net.http.HttpEngine;
 import android.net.http.HttpException;
 import android.net.http.InlineExecutionProhibitedException;
 import android.net.http.UploadDataProvider;
-import android.net.http.UploadDataSink;
 import android.net.http.UrlRequest;
 import android.net.http.UrlRequest.Status;
 import android.net.http.UrlResponseInfo;
 import android.net.http.cts.util.HttpCtsTestServer;
 import android.net.http.cts.util.TestStatusListener;
-import android.net.http.cts.util.TestUploadDataProvider;
 import android.net.http.cts.util.TestUrlRequestCallback;
 import android.net.http.cts.util.TestUrlRequestCallback.ResponseStep;
 import android.net.http.cts.util.UploadDataProviders;
+import android.webkit.cts.CtsTestServer;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
@@ -57,11 +59,16 @@
 import java.net.URLEncoder;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @RunWith(AndroidJUnit4.class)
 public class UrlRequestTest {
@@ -131,14 +138,11 @@
     }
 
     @Test
-    public void testUrlRequestPost_EchoRequestBody() throws Exception {
+    public void testUrlRequestPost_EchoRequestBody() {
         String testData = "test";
         UrlRequest.Builder builder = createUrlRequestBuilder(mTestServer.getEchoBodyUrl());
 
-        TestUploadDataProvider dataProvider =
-                new TestUploadDataProvider(
-                        TestUploadDataProvider.SuccessCallbackMode.SYNC, mCallback.getExecutor());
-        dataProvider.addRead(testData.getBytes());
+        UploadDataProvider dataProvider = UploadDataProviders.create(testData);
         builder.setUploadDataProvider(dataProvider, mCallback.getExecutor());
         builder.addHeader("Content-Type", "text/html");
         builder.build().start();
@@ -146,7 +150,6 @@
 
         assertOKStatusCode(mCallback.mResponseInfo);
         assertEquals(testData, mCallback.mResponseAsString);
-        dataProvider.assertClosed();
     }
 
     @Test
@@ -161,7 +164,7 @@
         callback.setAllowDirectExecutor(true);
         UrlRequest.Builder builder = mHttpEngine.newUrlRequestBuilder(
                 mTestServer.getEchoBodyUrl(), DIRECT_EXECUTOR, callback);
-        UploadDataProvider dataProvider = InMemoryUploadDataProvider.fromUtf8String("test");
+        UploadDataProvider dataProvider = UploadDataProviders.create("test");
         builder.setUploadDataProvider(dataProvider, DIRECT_EXECUTOR);
         builder.addHeader("Content-Type", "text/plain;charset=UTF-8");
         builder.setDirectExecutorAllowed(true);
@@ -184,7 +187,7 @@
 
         UrlRequest.Builder builder = mHttpEngine.newUrlRequestBuilder(
                 mTestServer.getEchoBodyUrl(), Executors.newSingleThreadExecutor(), callback);
-        UploadDataProvider dataProvider = InMemoryUploadDataProvider.fromUtf8String("test");
+        UploadDataProvider dataProvider = UploadDataProviders.create("test");
 
         builder.setUploadDataProvider(dataProvider, DIRECT_EXECUTOR)
                 .addHeader("Content-Type", "text/plain;charset=UTF-8")
@@ -204,7 +207,7 @@
 
         UrlRequest.Builder builder = mHttpEngine.newUrlRequestBuilder(
                 mTestServer.getEchoBodyUrl(), DIRECT_EXECUTOR, callback);
-        UploadDataProvider dataProvider = InMemoryUploadDataProvider.fromUtf8String("test");
+        UploadDataProvider dataProvider = UploadDataProviders.create("test");
 
         builder.setUploadDataProvider(dataProvider, Executors.newSingleThreadExecutor())
                 .addHeader("Content-Type", "text/plain;charset=UTF-8")
@@ -286,6 +289,24 @@
     }
 
     @Test
+    public void testUrlRequest_redirects() throws Exception {
+        int expectedNumRedirects = 5;
+        String url =
+                mTestServer.getRedirectingAssetUrl("html/hello_world.html", expectedNumRedirects);
+
+        UrlRequest request = createUrlRequestBuilder(url).build();
+        request.start();
+
+        mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
+        UrlResponseInfo info = mCallback.mResponseInfo;
+        assertOKStatusCode(info);
+        assertThat(mCallback.mResponseAsString).contains("hello world");
+        assertThat(info.getUrlChain()).hasSize(expectedNumRedirects + 1);
+        assertThat(info.getUrlChain().get(0)).isEqualTo(url);
+        assertThat(info.getUrlChain().get(expectedNumRedirects)).isEqualTo(info.getUrl());
+    }
+
+    @Test
     public void testUrlRequestPost_withRedirect() throws Exception {
         String body = Strings.repeat(
                 "Hello, this is a really interesting body, so write this 100 times.", 100);
@@ -310,7 +331,51 @@
         assertThat(mCallback.mResponseAsString).isEqualTo(body);
     }
 
-    private static class StubUrlRequestCallback extends UrlRequest.Callback {
+    @Test
+    public void testUrlRequest_customHeaders() throws Exception {
+        UrlRequest.Builder builder = createUrlRequestBuilder(mTestServer.getEchoHeadersUrl());
+
+        List<Map.Entry<String, String>> expectedHeaders = Arrays.asList(
+                Map.entry("Authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="),
+                Map.entry("Max-Forwards", "10"),
+                Map.entry("X-Client-Data", "random custom header content"));
+
+        for (Map.Entry<String, String> header : expectedHeaders) {
+            builder.addHeader(header.getKey(), header.getValue());
+        }
+
+        builder.build().start();
+        mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
+
+        assertOKStatusCode(mCallback.mResponseInfo);
+
+        List<Map.Entry<String, String>> echoedHeaders =
+                extractEchoedHeaders(mCallback.mResponseInfo.getHeaders());
+
+        // The implementation might decide to add more headers like accepted encodings it handles
+        // internally so the server is likely to see more headers than explicitly set
+        // by the developer.
+        assertThat(echoedHeaders)
+                .containsAtLeastElementsIn(expectedHeaders);
+    }
+
+    private static List<Map.Entry<String, String>> extractEchoedHeaders(HeaderBlock headers) {
+        return headers.getAsList()
+                .stream()
+                .flatMap(input -> {
+                    if (input.getKey().startsWith(CtsTestServer.ECHOED_RESPONSE_HEADER_PREFIX)) {
+                        String strippedKey =
+                                input.getKey().substring(
+                                        CtsTestServer.ECHOED_RESPONSE_HEADER_PREFIX.length());
+                        return Stream.of(Map.entry(strippedKey, input.getValue()));
+                    } else {
+                        return Stream.empty();
+                    }
+                })
+                .collect(Collectors.toList());
+    }
+
+    private static class StubUrlRequestCallback implements UrlRequest.Callback {
 
         @Override
         public void onRedirectReceived(
@@ -338,40 +403,10 @@
         public void onFailed(UrlRequest request, UrlResponseInfo info, HttpException error) {
             throw new UnsupportedOperationException(error);
         }
-    }
-
-    private static class InMemoryUploadDataProvider extends UploadDataProvider {
-        private final byte[] mBody;
-        private int mNextChunkStartIndex = 0;
-
-        private InMemoryUploadDataProvider(byte[] body) {
-            this.mBody = body;
-        }
-
-        static InMemoryUploadDataProvider fromUtf8String(String body) {
-            return new InMemoryUploadDataProvider(body.getBytes(StandardCharsets.UTF_8));
-        }
 
         @Override
-        public long getLength() {
-            return mBody.length;
-        }
-
-        @Override
-        public void read(UploadDataSink uploadDataSink, ByteBuffer byteBuffer) {
-            if (mNextChunkStartIndex >= getLength()) {
-                throw new IllegalStateException("Body of known length is exhausted");
-            }
-            int nextChunkSize =
-                    Math.min(mBody.length - mNextChunkStartIndex, byteBuffer.remaining());
-            byteBuffer.put(mBody, mNextChunkStartIndex, nextChunkSize);
-            mNextChunkStartIndex += nextChunkSize;
-            uploadDataSink.onReadSucceeded(false);
-        }
-
-        @Override
-        public void rewind(UploadDataSink uploadDataSink) {
-            mNextChunkStartIndex = 0;
+        public void onCanceled(@NonNull UrlRequest request, @Nullable UrlResponseInfo info) {
+            throw new UnsupportedOperationException();
         }
     }
 }
diff --git a/Cronet/tests/cts/src/android/net/http/cts/util/TestUploadDataProvider.java b/Cronet/tests/cts/src/android/net/http/cts/util/TestUploadDataProvider.java
deleted file mode 100644
index d047828..0000000
--- a/Cronet/tests/cts/src/android/net/http/cts/util/TestUploadDataProvider.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (C) 2022 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.http.cts.util;
-
-import android.net.http.UploadDataProvider;
-import android.net.http.UploadDataSink;
-import android.os.ConditionVariable;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.channels.ClosedChannelException;
-import java.util.ArrayList;
-import java.util.concurrent.Executor;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-/** An UploadDataProvider implementation used in tests. */
-public class TestUploadDataProvider extends UploadDataProvider {
-    // Indicates whether all success callbacks are synchronous or asynchronous.
-    // Doesn't apply to errors.
-    public enum SuccessCallbackMode {
-        SYNC,
-        ASYNC
-    }
-
-    // Indicates whether failures should throw exceptions, invoke callbacks
-    // synchronously, or invoke callback asynchronously.
-    public enum FailMode {
-        NONE,
-        THROWN,
-        CALLBACK_SYNC,
-        CALLBACK_ASYNC
-    }
-
-    private final ArrayList<byte[]> mReads = new ArrayList<byte[]>();
-    private final SuccessCallbackMode mSuccessCallbackMode;
-    private final Executor mExecutor;
-
-    private boolean mChunked;
-
-    // Index of read to fail on.
-    private int mReadFailIndex = -1;
-    // Indicates how to fail on a read.
-    private FailMode mReadFailMode = FailMode.NONE;
-
-    private FailMode mRewindFailMode = FailMode.NONE;
-
-    private FailMode mLengthFailMode = FailMode.NONE;
-
-    private int mNumReadCalls;
-    private int mNumRewindCalls;
-
-    private int mNextRead;
-    private boolean mStarted;
-    private boolean mReadPending;
-    private boolean mRewindPending;
-    // Used to ensure there are no read/rewind requests after a failure.
-    private boolean mFailed;
-
-    private final AtomicBoolean mClosed = new AtomicBoolean(false);
-    private final ConditionVariable mAwaitingClose = new ConditionVariable(false);
-
-    public TestUploadDataProvider(
-            SuccessCallbackMode successCallbackMode, final Executor executor) {
-        mSuccessCallbackMode = successCallbackMode;
-        mExecutor = executor;
-    }
-
-    // Adds the result to be returned by a successful read request.  The
-    // returned bytes must all fit within the read buffer provided by Cronet.
-    // After a rewind, if there is one, all reads will be repeated.
-    public void addRead(byte[] read) {
-        if (mStarted) {
-            throw new IllegalStateException("Adding bytes after read");
-        }
-        mReads.add(read);
-    }
-
-    public void setReadFailure(int readFailIndex, FailMode readFailMode) {
-        mReadFailIndex = readFailIndex;
-        mReadFailMode = readFailMode;
-    }
-
-    public void setLengthFailure() {
-        mLengthFailMode = FailMode.THROWN;
-    }
-
-    public void setRewindFailure(FailMode rewindFailMode) {
-        mRewindFailMode = rewindFailMode;
-    }
-
-    public void setChunked(boolean chunked) {
-        mChunked = chunked;
-    }
-
-    public int getNumReadCalls() {
-        return mNumReadCalls;
-    }
-
-    public int getNumRewindCalls() {
-        return mNumRewindCalls;
-    }
-
-    /** Returns the cumulative length of all data added by calls to addRead. */
-    @Override
-    public long getLength() throws IOException {
-        if (mClosed.get()) {
-            throw new ClosedChannelException();
-        }
-        if (mLengthFailMode == FailMode.THROWN) {
-            throw new IllegalStateException("Sync length failure");
-        }
-        return getUploadedLength();
-    }
-
-    public long getUploadedLength() {
-        if (mChunked) {
-            return -1;
-        }
-        long length = 0;
-        for (byte[] read : mReads) {
-            length += read.length;
-        }
-        return length;
-    }
-
-    @Override
-    public void read(final UploadDataSink uploadDataSink, final ByteBuffer byteBuffer)
-            throws IOException {
-        int currentReadCall = mNumReadCalls;
-        ++mNumReadCalls;
-        if (mClosed.get()) {
-            throw new ClosedChannelException();
-        }
-        assertIdle();
-
-        if (maybeFailRead(currentReadCall, uploadDataSink)) {
-            mFailed = true;
-            return;
-        }
-
-        mReadPending = true;
-        mStarted = true;
-
-        final boolean finalChunk = (mChunked && mNextRead == mReads.size() - 1);
-        if (mNextRead < mReads.size()) {
-            if ((byteBuffer.limit() - byteBuffer.position()) < mReads.get(mNextRead).length) {
-                throw new IllegalStateException("Read buffer smaller than expected.");
-            }
-            byteBuffer.put(mReads.get(mNextRead));
-            ++mNextRead;
-        } else {
-            throw new IllegalStateException("Too many reads: " + mNextRead);
-        }
-
-        Runnable completeRunnable =
-                new Runnable() {
-                    @Override
-                    public void run() {
-                        mReadPending = false;
-                        uploadDataSink.onReadSucceeded(finalChunk);
-                    }
-                };
-        if (mSuccessCallbackMode == SuccessCallbackMode.SYNC) {
-            completeRunnable.run();
-        } else {
-            mExecutor.execute(completeRunnable);
-        }
-    }
-
-    @Override
-    public void rewind(final UploadDataSink uploadDataSink) throws IOException {
-        ++mNumRewindCalls;
-        if (mClosed.get()) {
-            throw new ClosedChannelException();
-        }
-        assertIdle();
-
-        if (maybeFailRewind(uploadDataSink)) {
-            mFailed = true;
-            return;
-        }
-
-        if (mNextRead == 0) {
-            // Should never try and rewind when rewinding does nothing.
-            throw new IllegalStateException("Unexpected rewind when already at beginning");
-        }
-
-        mRewindPending = true;
-        mNextRead = 0;
-
-        Runnable completeRunnable =
-                new Runnable() {
-                    @Override
-                    public void run() {
-                        mRewindPending = false;
-                        uploadDataSink.onRewindSucceeded();
-                    }
-                };
-        if (mSuccessCallbackMode == SuccessCallbackMode.SYNC) {
-            completeRunnable.run();
-        } else {
-            mExecutor.execute(completeRunnable);
-        }
-    }
-
-    private void assertIdle() {
-        if (mReadPending) {
-            throw new IllegalStateException("Unexpected operation during read");
-        }
-        if (mRewindPending) {
-            throw new IllegalStateException("Unexpected operation during rewind");
-        }
-        if (mFailed) {
-            throw new IllegalStateException("Unexpected operation after failure");
-        }
-    }
-
-    private boolean maybeFailRead(int readIndex, final UploadDataSink uploadDataSink) {
-        if (readIndex != mReadFailIndex) return false;
-
-        switch (mReadFailMode) {
-            case THROWN:
-                throw new IllegalStateException("Thrown read failure");
-            case CALLBACK_SYNC:
-                uploadDataSink.onReadError(new IllegalStateException("Sync read failure"));
-                return true;
-            case CALLBACK_ASYNC:
-                Runnable errorRunnable =
-                        new Runnable() {
-                            @Override
-                            public void run() {
-                                uploadDataSink.onReadError(
-                                        new IllegalStateException("Async read failure"));
-                            }
-                        };
-                mExecutor.execute(errorRunnable);
-                return true;
-            default:
-                return false;
-        }
-    }
-
-    private boolean maybeFailRewind(final UploadDataSink uploadDataSink) {
-        switch (mRewindFailMode) {
-            case THROWN:
-                throw new IllegalStateException("Thrown rewind failure");
-            case CALLBACK_SYNC:
-                uploadDataSink.onRewindError(new IllegalStateException("Sync rewind failure"));
-                return true;
-            case CALLBACK_ASYNC:
-                Runnable errorRunnable =
-                        new Runnable() {
-                            @Override
-                            public void run() {
-                                uploadDataSink.onRewindError(
-                                        new IllegalStateException("Async rewind failure"));
-                            }
-                        };
-                mExecutor.execute(errorRunnable);
-                return true;
-            default:
-                return false;
-        }
-    }
-
-    @Override
-    public void close() throws IOException {
-        if (!mClosed.compareAndSet(false, true)) {
-            throw new AssertionError("Closed twice");
-        }
-        mAwaitingClose.open();
-    }
-
-    public void assertClosed() {
-        mAwaitingClose.block(5000);
-        if (!mClosed.get()) {
-            throw new AssertionError("Was not closed");
-        }
-    }
-}
diff --git a/Cronet/tests/cts/src/android/net/http/cts/util/TestUrlRequestCallback.java b/Cronet/tests/cts/src/android/net/http/cts/util/TestUrlRequestCallback.java
index efbcff6..28443b7 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/util/TestUrlRequestCallback.java
+++ b/Cronet/tests/cts/src/android/net/http/cts/util/TestUrlRequestCallback.java
@@ -50,7 +50,7 @@
  * method to block thread until the request completes on another thread.
  * Allows us to cancel, block request or throw an exception from an arbitrary step.
  */
-public class TestUrlRequestCallback extends UrlRequest.Callback {
+public class TestUrlRequestCallback implements UrlRequest.Callback {
     private static final int TIMEOUT_MS = 12_000;
     public ArrayList<UrlResponseInfo> mRedirectResponseInfoList = new ArrayList<>();
     public ArrayList<String> mRedirectUrlList = new ArrayList<>();
diff --git a/Cronet/tests/cts/src/android/net/http/cts/util/UploadDataProviders.java b/Cronet/tests/cts/src/android/net/http/cts/util/UploadDataProviders.java
index 889f8f2..3b90fa0 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/util/UploadDataProviders.java
+++ b/Cronet/tests/cts/src/android/net/http/cts/util/UploadDataProviders.java
@@ -25,6 +25,7 @@
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
+import java.nio.charset.StandardCharsets;
 
 /**
  * Provides implementations of {@link UploadDataProvider} for common use cases. Corresponds to
@@ -91,6 +92,16 @@
         return create(data, 0, data.length);
     }
 
+    /**
+     * Uploads the UTF-8 representation of {@code data}
+     *
+     * @param data String containing data to upload
+     * @return A new UploadDataProvider for the given data
+     */
+    public static UploadDataProvider create(String data) {
+        return create(data.getBytes(StandardCharsets.UTF_8));
+    }
+
     private interface FileChannelProvider {
         FileChannel getChannel() throws IOException;
     }
diff --git a/Cronet/tests/mts/Android.bp b/Cronet/tests/mts/Android.bp
index 03d163c..8fec6f3 100644
--- a/Cronet/tests/mts/Android.bp
+++ b/Cronet/tests/mts/Android.bp
@@ -17,19 +17,43 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
+java_genrule {
+    name: "net-http-test-jarjar-rules",
+    tool_files: [
+        ":NetHttpTestsLibPreJarJar{.jar}",
+        "jarjar_excludes.txt",
+    ],
+    tools: [
+        "jarjar-rules-generator",
+    ],
+    out: ["net_http_test_jarjar_rules.txt"],
+    cmd: "$(location jarjar-rules-generator) " +
+        "$(location :NetHttpTestsLibPreJarJar{.jar}) " +
+        "--prefix android.net.http.internal " +
+        "--excludes $(location jarjar_excludes.txt) " +
+        "--output $(out)",
+}
+
 android_library {
     name: "NetHttpTestsLibPreJarJar",
     srcs: [":cronet_aml_javatests_sources"],
-    sdk_version: "test_current",
+    sdk_version: "module_current",
     min_sdk_version: "30",
     static_libs: [
+        "cronet_testserver_utils",
         "androidx.test.ext.junit",
         "androidx.test.rules",
         "junit",
     ],
     libs: [
         "android.test.base",
-        "framework-tethering-pre-jarjar",
+        // Needed for direct access to tethering's hidden apis and to avoid `symbol not found`
+        // errors on some builds.
+        "framework-tethering.impl",
+        // android.net.Network apis
+        "framework-connectivity",
+        // android.net.TrafficStats apis
+        "framework-connectivity-t",
     ],
     lint: { test: true }
 }
@@ -40,9 +64,11 @@
         "CronetTestJavaDefaults",
         "mts-target-sdk-version-current",
      ],
-     sdk_version: "test_current",
      static_libs: ["NetHttpTestsLibPreJarJar"],
-     jarjar_rules: ":framework-tethering-jarjar-rules",
+     jarjar_rules: ":net-http-test-jarjar-rules",
+     jni_libs: [
+        "cronet_aml_components_cronet_android_cronet_tests__testing"
+     ],
      test_suites: [
          "general-tests",
          "mts-tethering",
diff --git a/Cronet/tests/mts/AndroidManifest.xml b/Cronet/tests/mts/AndroidManifest.xml
index 62c2060..f597134 100644
--- a/Cronet/tests/mts/AndroidManifest.xml
+++ b/Cronet/tests/mts/AndroidManifest.xml
@@ -21,7 +21,7 @@
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.INTERNET"/>
 
-    <application>
+    <application android:networkSecurityConfig="@xml/network_security_config">
         <uses-library android:name="android.test.runner" />
     </application>
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
diff --git a/Cronet/tests/mts/jarjar_excludes.txt b/Cronet/tests/mts/jarjar_excludes.txt
new file mode 100644
index 0000000..cf3a017
--- /dev/null
+++ b/Cronet/tests/mts/jarjar_excludes.txt
@@ -0,0 +1,13 @@
+# It's prohibited to jarjar androidx packages
+androidx\..+
+# Do not jarjar the api classes
+android\.net\..+
+# cronet_tests.so is not jarjared and uses base classes. We can remove this when there's a
+# separate java base target to depend on.
+org\.chromium\.base\..+
+# Do not jarjar the tests and its utils as they also do JNI with cronet_tests.so
+org\.chromium\.net\..*Test.*(\$.+)?
+org\.chromium\.net\.NativeTestServer(\$.+)?
+org\.chromium\.net\.MockUrlRequestJobFactory(\$.+)?
+org\.chromium\.net\.QuicTestServer(\$.+)?
+org\.chromium\.net\.MockCertVerifier(\$.+)?
\ No newline at end of file
diff --git a/Cronet/tests/mts/res/xml/network_security_config.xml b/Cronet/tests/mts/res/xml/network_security_config.xml
new file mode 100644
index 0000000..d44c36f
--- /dev/null
+++ b/Cronet/tests/mts/res/xml/network_security_config.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2022 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.
+  -->
+
+<network-security-config>
+    <domain-config cleartextTrafficPermitted="true">
+        <!-- Used as the base URL by native test server (net::EmbeddedTestServer) -->
+        <domain includeSubdomains="true">127.0.0.1</domain>
+        <!-- Used by CronetHttpURLConnectionTest#testIOExceptionInterruptRethrown -->
+        <domain includeSubdomains="true">localhost</domain>
+        <!-- Used by CronetHttpURLConnectionTest#testBadIP -->
+        <domain includeSubdomains="true">0.0.0.0</domain>
+        <!-- Used by CronetHttpURLConnectionTest#testSetUseCachesFalse -->
+        <domain includeSubdomains="true">host-cache-test-host</domain>
+        <!-- Used by CronetHttpURLConnectionTest#testBadHostname -->
+        <domain includeSubdomains="true">this-weird-host-name-does-not-exist</domain>
+        <!-- Used by CronetUrlRequestContextTest#testHostResolverRules -->
+        <domain includeSubdomains="true">some-weird-hostname</domain>
+    </domain-config>
+</network-security-config>
\ No newline at end of file
diff --git a/Cronet/tools/import/copy.bara.sky b/Cronet/tools/import/copy.bara.sky
index 2acf8cd..5372a4d 100644
--- a/Cronet/tools/import/copy.bara.sky
+++ b/Cronet/tools/import/copy.bara.sky
@@ -19,6 +19,8 @@
 
     # Exclude existing *OWNERS files
     "**/*OWNERS",
+    "**/.git/**",
+    "**/.gitignore",
 ]
 
 cronet_origin_files = glob(
@@ -28,13 +30,14 @@
         "build/buildflag.h",
         "chrome/VERSION",
         "components/cronet/**",
-        "components/grpc_suport/**",
         "components/metrics/**",
         "components/nacl/**",
         "components/prefs/**",
         "crypto/**",
         "ipc/**",
         "net/**",
+        # Note: Only used for tests.
+        "testing/**",
         "url/**",
         "LICENSE",
     ],
@@ -48,6 +51,8 @@
         "components/cronet/ios/**",
         "components/cronet/native/**",
 
+        # Per aosp/2399270
+        "testing/buildbot/**",
 
         # Exclude all third-party directories. Those are specified explicitly
         # below, so no dependency can accidentally creep in.
@@ -65,14 +70,11 @@
         "base/third_party/icu/**",
         "base/third_party/nspr/**",
         "base/third_party/superfasthash/**",
-        # TODO: we should be able to remove this dependency.
-        "base/third_party/symbolize/**",
         "base/third_party/valgrind/**",
-        "base/third_party/xdg_user_dirs/**",
-        # Not present in source repo; requires gclient sync.
         "buildtools/third_party/libc++/**",
-        # Not present in source repo; requires gclient sync.
         "buildtools/third_party/libc++abi/**",
+        # Note: Only used for tests.
+        "net/third_party/nist-pkits/**",
         "net/third_party/quiche/**",
         "net/third_party/uri_template/**",
         "third_party/abseil-cpp/**",
@@ -80,13 +82,24 @@
         "third_party/ashmem/**",
         "third_party/boringssl/**",
         "third_party/brotli/**",
-        # Not present in source repo; requires gclient sync.
+        # Note: Only used for tests.
+        "third_party/ced/**",
+        # Note: Only used for tests.
+        "third_party/googletest/**",
         "third_party/icu/**",
         "third_party/libevent/**",
+        # Note: Only used for tests.
+        "third_party/libxml/**",
+        # Note: Only used for tests.
+        "third_party/lss/**",
         "third_party/metrics_proto/**",
         "third_party/modp_b64/**",
         "third_party/protobuf/**",
-        "third_party/zlib/**",
+        # Note: Only used for tests.
+        "third_party/quic_trace/**",
+        # Note: Cronet currently uses Android's zlib
+        # "third_party/zlib/**",
+        "url/third_party/mozilla/**",
     ],
     exclude = common_excludes,
 )
@@ -94,12 +107,8 @@
 core.workflow(
     name = "import_cronet",
     authoring = authoring.overwrite("Cronet Mainline Eng <cronet-mainline-eng+copybara@google.com>"),
-    origin = git.origin(
-        url = "rpc://chromium/chromium/src",
-        # Source ref is set by the invoking script.
-        ref = "overwritten-by-script",
-        partial_fetch = True,
-    ),
+    # Origin folder is specified via source_ref argument, see import_cronet.sh
+    origin = folder.origin(),
     origin_files = cronet_origin_files,
     destination = git.destination(
         # The destination URL is set by the invoking script.
diff --git a/Cronet/tools/import/import_cronet.sh b/Cronet/tools/import/import_cronet.sh
index eb82551..0f04af7 100755
--- a/Cronet/tools/import/import_cronet.sh
+++ b/Cronet/tools/import/import_cronet.sh
@@ -24,6 +24,8 @@
 #   -n rev: The new revision to import.
 #   -f: Force copybara to ignore a failure to find the last imported revision.
 
+set -e -x
+
 OPTSTRING=fl:n:
 
 usage() {
@@ -33,8 +35,10 @@
     exit 1
 }
 
+COPYBARA_FOLDER_ORIGIN="/tmp/copybara-origin"
+
 #######################################
-# Create upstream-import branch in external/cronet.
+# Create local upstream-import branch in external/cronet.
 # Globals:
 #   ANDROID_BUILD_TOP
 # Arguments:
@@ -42,29 +46,70 @@
 #######################################
 setup_upstream_import_branch() {
     local git_dir="${ANDROID_BUILD_TOP}/external/cronet"
-    local initial_empty_repo_sha="d1add53d6e90815f363c91d433735556ce79b0d2"
 
-    # Suppress error message if branch already exists.
-    (cd "${git_dir}" && git branch upstream-import "${initial_empty_repo_sha}") 2>/dev/null
+    (cd "${git_dir}" && git fetch aosp upstream-import:upstream-import)
 }
 
 #######################################
+# Setup folder.origin for copybara inside /tmp
+# Globals:
+#   COPYBARA_FOLDER_ORIGIN
+# Arguments:
+#   new_rev, string
+#######################################
+setup_folder_origin() (
+    local _new_rev=$1
+    mkdir -p "${COPYBARA_FOLDER_ORIGIN}"
+    cd "${COPYBARA_FOLDER_ORIGIN}"
+
+    if [ -d src ]; then
+        (cd src && git fetch --tags && git checkout "${_new_rev}")
+    else
+        # For this to work _new_rev must be a branch or a tag.
+        git clone --depth=1 --branch "${_new_rev}" https://chromium.googlesource.com/chromium/src.git
+    fi
+
+
+    cat <<EOF >.gclient
+solutions = [
+  {
+    "name": "src",
+    "url": "https://chromium.googlesource.com/chromium/src.git",
+    "managed": False,
+    "custom_deps": {},
+    "custom_vars": {},
+  },
+]
+target_os = ["android"]
+EOF
+    cd src
+    # Set appropriate gclient flags to speed up syncing.
+    gclient sync \
+        --no-history \
+        --shallow \
+        --delete_unversioned_trees
+)
+
+#######################################
 # Runs the copybara import of Chromium
 # Globals:
 #   ANDROID_BUILD_TOP
+#   COPYBARA_FOLDER_ORIGIN
 # Arguments:
-#   new_rev, string
 #   last_rev, string or empty
 #   force, string or empty
 #######################################
 do_run_copybara() {
-    local _new_rev=$1
-    local _last_rev=$2
-    local _force=$3
+    local _last_rev=$1
+    local _force=$2
 
     local -a flags
     flags+=(--git-destination-url="file://${ANDROID_BUILD_TOP}/external/cronet")
-    flags+=(--repo-timeout 3h)
+    flags+=(--repo-timeout 3m)
+
+    # buildtools/third_party/libc++ contains an invalid symlink
+    flags+=(--folder-origin-ignore-invalid-symlinks)
+    flags+=(--git-no-verify)
 
     if [ ! -z "${_force}" ]; then
         flags+=(--force)
@@ -77,7 +122,7 @@
     /google/bin/releases/copybara/public/copybara/copybara \
         "${flags[@]}" \
         "${ANDROID_BUILD_TOP}/packages/modules/Connectivity/Cronet/tools/import/copy.bara.sky" \
-        import_cronet "${_new_rev}"
+        import_cronet "${COPYBARA_FOLDER_ORIGIN}/src"
 }
 
 while getopts $OPTSTRING opt; do
@@ -96,5 +141,6 @@
 fi
 
 setup_upstream_import_branch
-do_run_copybara "${new_rev}" "${last_rev}" "${force}"
+setup_folder_origin "${new_rev}"
+do_run_copybara "${last_rev}" "${force}"
 
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 70c5f85..d2f6d6a 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -75,9 +75,6 @@
       "name": "connectivity_native_test"
     },
     {
-      "name": "CtsNetHttpTestCases"
-    },
-    {
       "name": "libclat_test"
     },
     {
@@ -97,6 +94,16 @@
     },
     {
       "name": "FrameworksNetIntegrationTests"
+    },
+    // Runs both NetHttpTests and CtsNetHttpTestCases
+    {
+      "name": "NetHttpCoverageTests",
+      "options": [
+        {
+          // These sometimes take longer than 1 min which is the presubmit timeout
+          "exclude-annotation": "androidx.test.filters.LargeTest"
+        }
+      ]
     }
   ],
   "postsubmit": [
@@ -113,11 +120,6 @@
     },
     {
       "name": "FrameworksNetDeflakeTest"
-    },
-    // Run in postsubmit to confirm test passes continously since this is a new test setup
-    // TODO: move tests to presubmit
-    {
-      "name": "NetHttpTests"
     }
   ],
   "mainline-presubmit": [
@@ -215,7 +217,13 @@
       "name": "libnetworkstats_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
     },
     {
-      "name": "NetHttpCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
+      "name": "NetHttpCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]",
+      "options": [
+        {
+          // These sometimes take longer than 1 min which is the presubmit timeout
+          "exclude-annotation": "androidx.test.filters.LargeTest"
+        }
+      ]
     }
   ],
   "mainline-postsubmit": [
diff --git a/Tethering/Android.bp b/Tethering/Android.bp
index d2f6d15..8810a8c 100644
--- a/Tethering/Android.bp
+++ b/Tethering/Android.bp
@@ -61,9 +61,13 @@
         "modules-utils-build",
         "modules-utils-statemachine",
         "networkstack-client",
+        // AIDL tetheroffload implementation
+        "android.hardware.tetheroffload-V1-java",
+        // HIDL tetheroffload implementation
         "android.hardware.tetheroffload.config-V1.0-java",
         "android.hardware.tetheroffload.control-V1.0-java",
         "android.hardware.tetheroffload.control-V1.1-java",
+        "android.hidl.manager-V1.2-java",
         "net-utils-framework-common",
         "net-utils-device-common",
         "net-utils-device-common-bpf",
diff --git a/Tethering/apex/Android.bp b/Tethering/apex/Android.bp
index 67206cd..3f35c6b 100644
--- a/Tethering/apex/Android.bp
+++ b/Tethering/apex/Android.bp
@@ -38,6 +38,13 @@
     name: "ConnectivityNextEnableDefaults",
     enabled: true,
 }
+java_defaults {
+    name: "NetworkStackApiShimSettingsForCurrentBranch",
+    // API shims to include in the networking modules built from the branch. Branches that disable
+    // the "next" targets must use stable shims (latest stable API level) instead of current shims
+    // (X_current API level).
+    static_libs: ["NetworkStackApiCurrentShims"],
+}
 apex_defaults {
     name: "ConnectivityApexDefaults",
     // Tethering app to include in the AOSP apex. Branches that disable the "next" targets may use
@@ -66,11 +73,19 @@
 
 apex_defaults {
     name: "CronetInTetheringApexDefaultsEnabled",
-    jni_libs: ["cronet_aml_components_cronet_android_cronet"],
+    jni_libs: [
+        "cronet_aml_components_cronet_android_cronet",
+        "//external/cronet/third_party/boringssl:libcrypto",
+        "//external/cronet/third_party/boringssl:libssl",
+    ],
     arch: {
         riscv64: {
             // TODO: remove this when there is a riscv64 libcronet
-            exclude_jni_libs: ["cronet_aml_components_cronet_android_cronet"],
+            exclude_jni_libs: [
+                "cronet_aml_components_cronet_android_cronet",
+                "//external/cronet/third_party/boringssl:libcrypto",
+                "//external/cronet/third_party/boringssl:libssl",
+            ],
         },
     },
 }
diff --git a/Tethering/common/TetheringLib/Android.bp b/Tethering/common/TetheringLib/Android.bp
index 4080029..74170cb 100644
--- a/Tethering/common/TetheringLib/Android.bp
+++ b/Tethering/common/TetheringLib/Android.bp
@@ -54,6 +54,7 @@
         "//packages/modules/CaptivePortalLogin/tests",
         "//packages/modules/Connectivity/Tethering/tests:__subpackages__",
         "//packages/modules/Connectivity/tests:__subpackages__",
+        "//packages/modules/Connectivity/Cronet/tests:__subpackages__",
         "//packages/modules/IPsec/tests/iketests",
         "//packages/modules/NetworkStack/tests:__subpackages__",
         "//packages/modules/Wifi/service/tests/wifitests",
@@ -127,7 +128,7 @@
     out: ["framework_tethering_jarjar_rules.txt"],
     cmd: "$(location jarjar-rules-generator) " +
         "$(location :framework-tethering-pre-jarjar{.jar}) " +
-        "--apistubs $(location :framework-tethering.stubs.module_lib{.jar}) " + 
+        "--apistubs $(location :framework-tethering.stubs.module_lib{.jar}) " +
         "--prefix android.net.http.internal " +
         "--excludes $(location jarjar-excludes.txt) " +
         "--output $(out)",
@@ -151,6 +152,7 @@
 
 filegroup {
     name: "framework-tethering-srcs",
+    defaults: ["framework-sources-module-defaults"],
     srcs: [
         "src/**/*.aidl",
         "src/**/*.java",
diff --git a/Tethering/common/TetheringLib/cronet_enabled/api/current.txt b/Tethering/common/TetheringLib/cronet_enabled/api/current.txt
index cf441ce..333ea1c 100644
--- a/Tethering/common/TetheringLib/cronet_enabled/api/current.txt
+++ b/Tethering/common/TetheringLib/cronet_enabled/api/current.txt
@@ -51,9 +51,9 @@
   }
 
   public class ConnectionMigrationOptions {
-    method public int getAllowNonDefaultNetworkUsageEnabled();
-    method public int getDefaultNetworkMigrationEnabled();
-    method public int getPathDegradationMigrationEnabled();
+    method public int getAllowNonDefaultNetworkUsage();
+    method public int getDefaultNetworkMigration();
+    method public int getPathDegradationMigration();
     field public static final int MIGRATION_OPTION_DISABLED = 2; // 0x2
     field public static final int MIGRATION_OPTION_ENABLED = 1; // 0x1
     field public static final int MIGRATION_OPTION_UNSPECIFIED = 0; // 0x0
@@ -62,18 +62,18 @@
   public static final class ConnectionMigrationOptions.Builder {
     ctor public ConnectionMigrationOptions.Builder();
     method @NonNull public android.net.http.ConnectionMigrationOptions build();
-    method @NonNull public android.net.http.ConnectionMigrationOptions.Builder setAllowNonDefaultNetworkUsageEnabled(int);
-    method @NonNull public android.net.http.ConnectionMigrationOptions.Builder setDefaultNetworkMigrationEnabled(int);
-    method @NonNull public android.net.http.ConnectionMigrationOptions.Builder setPathDegradationMigrationEnabled(int);
+    method @NonNull public android.net.http.ConnectionMigrationOptions.Builder setAllowNonDefaultNetworkUsage(int);
+    method @NonNull public android.net.http.ConnectionMigrationOptions.Builder setDefaultNetworkMigration(int);
+    method @NonNull public android.net.http.ConnectionMigrationOptions.Builder setPathDegradationMigration(int);
   }
 
   public final class DnsOptions {
-    method public int getPersistHostCacheEnabled();
+    method public int getPersistHostCache();
     method @Nullable public java.time.Duration getPersistHostCachePeriod();
-    method public int getPreestablishConnectionsToStaleDnsResultsEnabled();
-    method public int getStaleDnsEnabled();
+    method public int getPreestablishConnectionsToStaleDnsResults();
+    method public int getStaleDns();
     method @Nullable public android.net.http.DnsOptions.StaleDnsOptions getStaleDnsOptions();
-    method public int getUseHttpStackDnsResolverEnabled();
+    method public int getUseHttpStackDnsResolver();
     field public static final int DNS_OPTION_DISABLED = 2; // 0x2
     field public static final int DNS_OPTION_ENABLED = 1; // 0x1
     field public static final int DNS_OPTION_UNSPECIFIED = 0; // 0x0
@@ -82,28 +82,28 @@
   public static final class DnsOptions.Builder {
     ctor public DnsOptions.Builder();
     method @NonNull public android.net.http.DnsOptions build();
-    method @NonNull public android.net.http.DnsOptions.Builder setPersistHostCacheEnabled(int);
+    method @NonNull public android.net.http.DnsOptions.Builder setPersistHostCache(int);
     method @NonNull public android.net.http.DnsOptions.Builder setPersistHostCachePeriod(@NonNull java.time.Duration);
-    method @NonNull public android.net.http.DnsOptions.Builder setPreestablishConnectionsToStaleDnsResultsEnabled(int);
-    method @NonNull public android.net.http.DnsOptions.Builder setStaleDnsEnabled(int);
+    method @NonNull public android.net.http.DnsOptions.Builder setPreestablishConnectionsToStaleDnsResults(int);
+    method @NonNull public android.net.http.DnsOptions.Builder setStaleDns(int);
     method @NonNull public android.net.http.DnsOptions.Builder setStaleDnsOptions(@NonNull android.net.http.DnsOptions.StaleDnsOptions);
-    method @NonNull public android.net.http.DnsOptions.Builder setUseHttpStackDnsResolverEnabled(int);
+    method @NonNull public android.net.http.DnsOptions.Builder setUseHttpStackDnsResolver(int);
   }
 
   public static class DnsOptions.StaleDnsOptions {
-    method public int getAllowCrossNetworkUsageEnabled();
+    method public int getAllowCrossNetworkUsage();
     method @Nullable public java.time.Duration getFreshLookupTimeout();
     method @Nullable public java.time.Duration getMaxExpiredDelay();
-    method public int getUseStaleOnNameNotResolvedEnabled();
+    method public int getUseStaleOnNameNotResolved();
   }
 
   public static final class DnsOptions.StaleDnsOptions.Builder {
     ctor public DnsOptions.StaleDnsOptions.Builder();
     method @NonNull public android.net.http.DnsOptions.StaleDnsOptions build();
-    method @NonNull public android.net.http.DnsOptions.StaleDnsOptions.Builder setAllowCrossNetworkUsageEnabled(int);
+    method @NonNull public android.net.http.DnsOptions.StaleDnsOptions.Builder setAllowCrossNetworkUsage(int);
     method @NonNull public android.net.http.DnsOptions.StaleDnsOptions.Builder setFreshLookupTimeout(@NonNull java.time.Duration);
     method @NonNull public android.net.http.DnsOptions.StaleDnsOptions.Builder setMaxExpiredDelay(@NonNull java.time.Duration);
-    method @NonNull public android.net.http.DnsOptions.StaleDnsOptions.Builder setUseStaleOnNameNotResolvedEnabled(int);
+    method @NonNull public android.net.http.DnsOptions.StaleDnsOptions.Builder setUseStaleOnNameNotResolved(int);
   }
 
   public abstract class HeaderBlock {
@@ -177,7 +177,8 @@
     method @NonNull public java.util.Set<java.lang.String> getAllowedQuicHosts();
     method @Nullable public String getHandshakeUserAgent();
     method @Nullable public java.time.Duration getIdleConnectionTimeout();
-    method @Nullable public Integer getInMemoryServerConfigsCacheSize();
+    method public int getInMemoryServerConfigsCacheSize();
+    method public boolean hasInMemoryServerConfigsCacheSize();
   }
 
   public static final class QuicOptions.Builder {
@@ -241,14 +242,13 @@
     method @NonNull public abstract android.net.http.UrlRequest.Builder setUploadDataProvider(@NonNull android.net.http.UploadDataProvider, @NonNull java.util.concurrent.Executor);
   }
 
-  public abstract static class UrlRequest.Callback {
-    ctor public UrlRequest.Callback();
+  public static interface UrlRequest.Callback {
     method public void onCanceled(@NonNull android.net.http.UrlRequest, @Nullable android.net.http.UrlResponseInfo);
-    method public abstract void onFailed(@NonNull android.net.http.UrlRequest, @Nullable android.net.http.UrlResponseInfo, @NonNull android.net.http.HttpException);
-    method public abstract void onReadCompleted(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo, @NonNull java.nio.ByteBuffer) throws java.lang.Exception;
-    method public abstract void onRedirectReceived(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo, @NonNull String) throws java.lang.Exception;
-    method public abstract void onResponseStarted(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo) throws java.lang.Exception;
-    method public abstract void onSucceeded(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo);
+    method public void onFailed(@NonNull android.net.http.UrlRequest, @Nullable android.net.http.UrlResponseInfo, @NonNull android.net.http.HttpException);
+    method public void onReadCompleted(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo, @NonNull java.nio.ByteBuffer) throws java.lang.Exception;
+    method public void onRedirectReceived(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo, @NonNull String) throws java.lang.Exception;
+    method public void onResponseStarted(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo) throws java.lang.Exception;
+    method public void onSucceeded(@NonNull android.net.http.UrlRequest, @NonNull android.net.http.UrlResponseInfo);
   }
 
   public static class UrlRequest.Status {
diff --git a/Tethering/jni/com_android_networkstack_tethering_util_TetheringUtils.cpp b/Tethering/jni/com_android_networkstack_tethering_util_TetheringUtils.cpp
index 6699c0d..a878fa5 100644
--- a/Tethering/jni/com_android_networkstack_tethering_util_TetheringUtils.cpp
+++ b/Tethering/jni/com_android_networkstack_tethering_util_TetheringUtils.cpp
@@ -67,17 +67,17 @@
     }
 }
 
-static void com_android_networkstack_tethering_util_setupNaSocket(JNIEnv *env, jobject clazz,
+static void com_android_networkstack_tethering_util_setupNaSocket(JNIEnv *env, jclass clazz,
         jobject javaFd) {
     com_android_networkstack_tethering_util_setupIcmpFilter(env, javaFd, ND_NEIGHBOR_ADVERT);
 }
 
-static void com_android_networkstack_tethering_util_setupNsSocket(JNIEnv *env, jobject clazz,
+static void com_android_networkstack_tethering_util_setupNsSocket(JNIEnv *env, jclass clazz,
         jobject javaFd) {
     com_android_networkstack_tethering_util_setupIcmpFilter(env, javaFd, ND_NEIGHBOR_SOLICIT);
 }
 
-static void com_android_networkstack_tethering_util_setupRaSocket(JNIEnv *env, jobject clazz,
+static void com_android_networkstack_tethering_util_setupRaSocket(JNIEnv *env, jclass clazz,
         jobject javaFd, jint ifIndex) {
     static const int kLinkLocalHopLimit = 255;
 
diff --git a/Tethering/src/com/android/networkstack/tethering/IOffloadHal.java b/Tethering/src/com/android/networkstack/tethering/IOffloadHal.java
new file mode 100644
index 0000000..e66e7ae
--- /dev/null
+++ b/Tethering/src/com/android/networkstack/tethering/IOffloadHal.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2022 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.networkstack.tethering;
+
+import android.annotation.NonNull;
+import android.os.NativeHandle;
+
+import com.android.networkstack.tethering.OffloadHardwareInterface.ForwardedStats;
+import com.android.networkstack.tethering.OffloadHardwareInterface.OffloadHalCallback;
+
+import java.util.ArrayList;
+
+/** Abstraction of Tetheroffload HAL interface */
+interface IOffloadHal {
+    /*
+     * Initialize the Tetheroffload HAL. Offload management process need to know conntrack rules to
+     * support NAT, but it may not have permission to create netlink netfilter sockets. Create two
+     * netlink netfilter sockets and share them with offload management process.
+     */
+    boolean initOffload(@NonNull NativeHandle handle1, @NonNull NativeHandle handle2,
+            @NonNull OffloadHalCallback callback);
+
+    /** Stop the Tetheroffload HAL. */
+    boolean stopOffload();
+
+    /** Get HAL interface version number. */
+    int getVersion();
+
+    /** Get Tx/Rx usage from last query. */
+    ForwardedStats getForwardedStats(@NonNull String upstream);
+
+    /** Set local prefixes to offload management process. */
+    boolean setLocalPrefixes(@NonNull ArrayList<String> localPrefixes);
+
+    /** Set data limit value to offload management process. */
+    boolean setDataLimit(@NonNull String iface, long limit);
+
+    /** Set data warning and limit value to offload management process. */
+    boolean setDataWarningAndLimit(@NonNull String iface, long warning, long limit);
+
+    /** Set upstream parameters to offload management process. */
+    boolean setUpstreamParameters(@NonNull String iface, @NonNull String v4addr,
+            @NonNull String v4gateway, @NonNull ArrayList<String> v6gws);
+
+    /** Add downstream prefix to offload management process. */
+    boolean addDownstream(@NonNull String ifname, @NonNull String prefix);
+
+    /** Remove downstream prefix from offload management process. */
+    boolean removeDownstream(@NonNull String ifname, @NonNull String prefix);
+}
diff --git a/Tethering/src/com/android/networkstack/tethering/OffloadController.java b/Tethering/src/com/android/networkstack/tethering/OffloadController.java
index d2f177d..5fa6b2d 100644
--- a/Tethering/src/com/android/networkstack/tethering/OffloadController.java
+++ b/Tethering/src/com/android/networkstack/tethering/OffloadController.java
@@ -26,8 +26,8 @@
 import static android.net.netstats.provider.NetworkStatsProvider.QUOTA_UNLIMITED;
 import static android.provider.Settings.Global.TETHER_OFFLOAD_DISABLED;
 
-import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_1_0;
-import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_1_1;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_0;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_1;
 import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_NONE;
 import static com.android.networkstack.tethering.TetheringConfiguration.DEFAULT_TETHER_OFFLOAD_POLL_INTERVAL_MS;
 
@@ -98,9 +98,8 @@
     private final OffloadTetheringStatsProvider mStatsProvider;
     private final SharedLog mLog;
     private final HashMap<String, LinkProperties> mDownstreams;
-    private boolean mConfigInitialized;
     @OffloadHardwareInterface.OffloadHalVersion
-    private int mControlHalVersion;
+    private int mOffloadHalVersion;
     private LinkProperties mUpstreamLinkProperties;
     // The complete set of offload-exempt prefixes passed in via Tethering from
     // all upstream and downstream sources.
@@ -205,20 +204,11 @@
             return false;
         }
 
-        if (!mConfigInitialized) {
-            mConfigInitialized = mHwInterface.initOffloadConfig();
-            if (!mConfigInitialized) {
-                mLog.i("tethering offload config not supported");
-                stop();
-                return false;
-            }
-        }
-
-        mControlHalVersion = mHwInterface.initOffloadControl(
+        mOffloadHalVersion = mHwInterface.initOffload(
                 // OffloadHardwareInterface guarantees that these callback
                 // methods are called on the handler passed to it, which is the
                 // same as mHandler, as coordinated by the setup in Tethering.
-                new OffloadHardwareInterface.ControlCallback() {
+                new OffloadHardwareInterface.OffloadHalCallback() {
                     @Override
                     public void onStarted() {
                         if (!started()) return;
@@ -305,11 +295,11 @@
 
         final boolean isStarted = started();
         if (!isStarted) {
-            mLog.i("tethering offload control not supported");
+            mLog.i("tethering offload not supported");
             stop();
         } else {
             mLog.log("tethering offload started, version: "
-                    + OffloadHardwareInterface.halVerToString(mControlHalVersion));
+                    + OffloadHardwareInterface.halVerToString(mOffloadHalVersion));
             mNatUpdateCallbacksReceived = 0;
             mNatUpdateNetlinkErrors = 0;
             maybeSchedulePollingStats();
@@ -325,9 +315,8 @@
         final boolean wasStarted = started();
         updateStatsForCurrentUpstream();
         mUpstreamLinkProperties = null;
-        mHwInterface.stopOffloadControl();
-        mControlHalVersion = OFFLOAD_HAL_VERSION_NONE;
-        mConfigInitialized = false;
+        mHwInterface.stopOffload();
+        mOffloadHalVersion = OFFLOAD_HAL_VERSION_NONE;
         if (mHandler.hasCallbacks(mScheduledPollingTask)) {
             mHandler.removeCallbacks(mScheduledPollingTask);
         }
@@ -335,7 +324,7 @@
     }
 
     private boolean started() {
-        return mConfigInitialized && mControlHalVersion != OFFLOAD_HAL_VERSION_NONE;
+        return mOffloadHalVersion != OFFLOAD_HAL_VERSION_NONE;
     }
 
     @VisibleForTesting
@@ -528,7 +517,7 @@
     }
 
     private boolean useStatsPolling() {
-        return mControlHalVersion == OFFLOAD_HAL_VERSION_1_0;
+        return mOffloadHalVersion == OFFLOAD_HAL_VERSION_HIDL_1_0;
     }
 
     private boolean maybeUpdateDataWarningAndLimit(String iface) {
@@ -540,7 +529,7 @@
 
         final InterfaceQuota quota = mInterfaceQuotas.getOrDefault(iface, InterfaceQuota.MAX_VALUE);
         final boolean ret;
-        if (mControlHalVersion >= OFFLOAD_HAL_VERSION_1_1) {
+        if (mOffloadHalVersion >= OFFLOAD_HAL_VERSION_HIDL_1_1) {
             ret = mHwInterface.setDataWarningAndLimit(iface, quota.warningBytes, quota.limitBytes);
         } else {
             ret = mHwInterface.setDataLimit(iface, quota.limitBytes);
@@ -611,7 +600,7 @@
         for (RouteInfo ri : oldRoutes) {
             if (shouldIgnoreDownstreamRoute(ri)) continue;
             if (!newRoutes.contains(ri)) {
-                mHwInterface.removeDownstreamPrefix(ifname, ri.getDestination().toString());
+                mHwInterface.removeDownstream(ifname, ri.getDestination().toString());
             }
         }
 
@@ -619,7 +608,7 @@
         for (RouteInfo ri : newRoutes) {
             if (shouldIgnoreDownstreamRoute(ri)) continue;
             if (!oldRoutes.contains(ri)) {
-                mHwInterface.addDownstreamPrefix(ifname, ri.getDestination().toString());
+                mHwInterface.addDownstream(ifname, ri.getDestination().toString());
             }
         }
     }
@@ -639,7 +628,7 @@
 
         for (RouteInfo route : lp.getRoutes()) {
             if (shouldIgnoreDownstreamRoute(route)) continue;
-            mHwInterface.removeDownstreamPrefix(ifname, route.getDestination().toString());
+            mHwInterface.removeDownstream(ifname, route.getDestination().toString());
         }
     }
 
@@ -768,7 +757,7 @@
         final boolean isStarted = started();
         pw.println("Offload HALs " + (isStarted ? "started" : "not started"));
         pw.println("Offload Control HAL version: "
-                + OffloadHardwareInterface.halVerToString(mControlHalVersion));
+                + OffloadHardwareInterface.halVerToString(mOffloadHalVersion));
         LinkProperties lp = mUpstreamLinkProperties;
         String upstream = (lp != null) ? lp.getInterfaceName() : null;
         pw.println("Current upstream: " + upstream);
diff --git a/Tethering/src/com/android/networkstack/tethering/OffloadHalAidlImpl.java b/Tethering/src/com/android/networkstack/tethering/OffloadHalAidlImpl.java
new file mode 100644
index 0000000..e7dc757
--- /dev/null
+++ b/Tethering/src/com/android/networkstack/tethering/OffloadHalAidlImpl.java
@@ -0,0 +1,304 @@
+/*
+ * Copyright (C) 2022 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.networkstack.tethering;
+
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_AIDL;
+
+import android.annotation.NonNull;
+import android.hardware.tetheroffload.ForwardedStats;
+import android.hardware.tetheroffload.IOffload;
+import android.hardware.tetheroffload.ITetheringOffloadCallback;
+import android.hardware.tetheroffload.NatTimeoutUpdate;
+import android.hardware.tetheroffload.NetworkProtocol;
+import android.hardware.tetheroffload.OffloadCallbackEvent;
+import android.os.Handler;
+import android.os.NativeHandle;
+import android.os.ParcelFileDescriptor;
+import android.os.ServiceManager;
+import android.system.OsConstants;
+
+import com.android.modules.utils.build.SdkLevel;
+import com.android.net.module.util.SharedLog;
+import com.android.networkstack.tethering.OffloadHardwareInterface.OffloadHalCallback;
+
+import java.util.ArrayList;
+
+/**
+ * The implementation of IOffloadHal which based on Stable AIDL interface
+ */
+public class OffloadHalAidlImpl implements IOffloadHal {
+    private static final String TAG = OffloadHalAidlImpl.class.getSimpleName();
+    private static final String HAL_INSTANCE_NAME = IOffload.DESCRIPTOR + "/default";
+
+    private final Handler mHandler;
+    private final SharedLog mLog;
+    private final IOffload mIOffload;
+    @OffloadHardwareInterface.OffloadHalVersion
+    private final int mOffloadVersion;
+
+    private TetheringOffloadCallback mTetheringOffloadCallback;
+
+    public OffloadHalAidlImpl(int version, @NonNull IOffload offload, @NonNull Handler handler,
+            @NonNull SharedLog log) {
+        mOffloadVersion = version;
+        mIOffload = offload;
+        mHandler = handler;
+        mLog = log.forSubComponent(TAG);
+    }
+
+    /**
+     * Initialize the Tetheroffload HAL. Provides bound netlink file descriptors for use in the
+     * management process.
+     */
+    public boolean initOffload(@NonNull NativeHandle handle1, @NonNull NativeHandle handle2,
+            @NonNull OffloadHalCallback callback) {
+        final String methodStr = String.format("initOffload(%d, %d, %s)",
+                handle1.getFileDescriptor().getInt$(), handle2.getFileDescriptor().getInt$(),
+                (callback == null) ? "null"
+                : "0x" + Integer.toHexString(System.identityHashCode(callback)));
+        mTetheringOffloadCallback = new TetheringOffloadCallback(mHandler, callback, mLog);
+        try {
+            mIOffload.initOffload(
+                    ParcelFileDescriptor.adoptFd(handle1.getFileDescriptor().getInt$()),
+                    ParcelFileDescriptor.adoptFd(handle2.getFileDescriptor().getInt$()),
+                    mTetheringOffloadCallback);
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /** Stop the Tetheroffload HAL. */
+    public boolean stopOffload() {
+        final String methodStr = "stopOffload()";
+        try {
+            mIOffload.stopOffload();
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+
+        mTetheringOffloadCallback = null;
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /** Get HAL interface version number. */
+    public int getVersion() {
+        return mOffloadVersion;
+    }
+
+    /** Get Tx/Rx usage from last query. */
+    public OffloadHardwareInterface.ForwardedStats getForwardedStats(@NonNull String upstream) {
+        ForwardedStats stats = new ForwardedStats();
+        final String methodStr = String.format("getForwardedStats(%s)",  upstream);
+        try {
+            stats = mIOffload.getForwardedStats(upstream);
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+        }
+        mLog.i(methodStr);
+        return new OffloadHardwareInterface.ForwardedStats(stats.rxBytes, stats.txBytes);
+    }
+
+    /** Set local prefixes to offload management process. */
+    public boolean setLocalPrefixes(@NonNull ArrayList<String> localPrefixes) {
+        final String methodStr = String.format("setLocalPrefixes([%s])",
+                String.join(",", localPrefixes));
+        try {
+            mIOffload.setLocalPrefixes(localPrefixes.toArray(new String[localPrefixes.size()]));
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /**
+     * Set data limit value to offload management process.
+     * Method setDataLimit is deprecated in AIDL, so call setDataWarningAndLimit instead,
+     * with warningBytes set to its MAX_VALUE.
+     */
+    public boolean setDataLimit(@NonNull String iface, long limit) {
+        final long warning = Long.MAX_VALUE;
+        final String methodStr = String.format("setDataLimit(%s, %d)", iface, limit);
+        try {
+            mIOffload.setDataWarningAndLimit(iface, warning, limit);
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /** Set data warning and limit value to offload management process. */
+    public boolean setDataWarningAndLimit(@NonNull String iface, long warning, long limit) {
+        final String methodStr =
+                String.format("setDataWarningAndLimit(%s, %d, %d)", iface, warning, limit);
+        try {
+            mIOffload.setDataWarningAndLimit(iface, warning, limit);
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /** Set upstream parameters to offload management process. */
+    public boolean setUpstreamParameters(@NonNull String iface, @NonNull String v4addr,
+            @NonNull String v4gateway, @NonNull ArrayList<String> v6gws) {
+        final String methodStr = String.format("setUpstreamParameters(%s, %s, %s, [%s])",
+                iface, v4addr, v4gateway, String.join(",", v6gws));
+        try {
+            mIOffload.setUpstreamParameters(iface, v4addr, v4gateway,
+                    v6gws.toArray(new String[v6gws.size()]));
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /** Add downstream prefix to offload management process. */
+    public boolean addDownstream(@NonNull String ifname, @NonNull String prefix) {
+        final String methodStr = String.format("addDownstream(%s, %s)", ifname, prefix);
+        try {
+            mIOffload.addDownstream(ifname, prefix);
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /** Remove downstream prefix from offload management process. */
+    public boolean removeDownstream(@NonNull String ifname, @NonNull String prefix) {
+        final String methodStr = String.format("removeDownstream(%s, %s)", ifname, prefix);
+        try {
+            mIOffload.removeDownstream(ifname, prefix);
+        } catch (Exception e) {
+            logAndIgnoreException(e, methodStr);
+            return false;
+        }
+        mLog.i(methodStr);
+        return true;
+    }
+
+    /**
+     * Get {@link IOffloadHal} object from the AIDL service.
+     *
+     * @param handler {@link Handler} to specify the thread upon which the callback will be invoked.
+     * @param log Log to be used by the repository.
+     */
+    public static IOffloadHal getIOffloadHal(Handler handler, SharedLog log) {
+        // Tetheroffload AIDL interface is only supported after U.
+        if (!SdkLevel.isAtLeastU() || !ServiceManager.isDeclared(HAL_INSTANCE_NAME)) return null;
+
+        IOffload offload = IOffload.Stub.asInterface(
+                ServiceManager.waitForDeclaredService(HAL_INSTANCE_NAME));
+        if (offload == null) return null;
+
+        return new OffloadHalAidlImpl(OFFLOAD_HAL_VERSION_AIDL, offload, handler, log);
+    }
+
+    private void logAndIgnoreException(Exception e, final String methodStr) {
+        mLog.e(methodStr + " failed with " + e.getClass().getSimpleName() + ": ", e);
+    }
+
+    private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub {
+        public final Handler handler;
+        public final OffloadHalCallback callback;
+        public final SharedLog log;
+
+        TetheringOffloadCallback(
+                Handler h, OffloadHalCallback cb, SharedLog sharedLog) {
+            handler = h;
+            callback = cb;
+            log = sharedLog;
+        }
+
+        private void handleOnEvent(int event) {
+            switch (event) {
+                case OffloadCallbackEvent.OFFLOAD_STARTED:
+                    callback.onStarted();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR:
+                    callback.onStoppedError();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED:
+                    callback.onStoppedUnsupported();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE:
+                    callback.onSupportAvailable();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED:
+                    callback.onStoppedLimitReached();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_WARNING_REACHED:
+                    callback.onWarningReached();
+                    break;
+                default:
+                    log.e("Unsupported OffloadCallbackEvent: " + event);
+            }
+        }
+
+        @Override
+        public void onEvent(int event) {
+            handler.post(() -> {
+                handleOnEvent(event);
+            });
+        }
+
+        @Override
+        public void updateTimeout(NatTimeoutUpdate params) {
+            handler.post(() -> {
+                callback.onNatTimeoutUpdate(
+                        networkProtocolToOsConstant(params.proto),
+                        params.src.addr, params.src.port,
+                        params.dst.addr, params.dst.port);
+            });
+        }
+
+        @Override
+        public String getInterfaceHash() {
+            return ITetheringOffloadCallback.HASH;
+        }
+
+        @Override
+        public int getInterfaceVersion() {
+            return ITetheringOffloadCallback.VERSION;
+        }
+    }
+
+    private static int networkProtocolToOsConstant(int proto) {
+        switch (proto) {
+            case NetworkProtocol.TCP: return OsConstants.IPPROTO_TCP;
+            case NetworkProtocol.UDP: return OsConstants.IPPROTO_UDP;
+            default:
+                // The caller checks this value and will log an error. Just make
+                // sure it won't collide with valid OsConstants.IPPROTO_* values.
+                return -Math.abs(proto);
+        }
+    }
+}
diff --git a/Tethering/src/com/android/networkstack/tethering/OffloadHalHidlImpl.java b/Tethering/src/com/android/networkstack/tethering/OffloadHalHidlImpl.java
new file mode 100644
index 0000000..3e02543
--- /dev/null
+++ b/Tethering/src/com/android/networkstack/tethering/OffloadHalHidlImpl.java
@@ -0,0 +1,436 @@
+/*
+ * Copyright (C) 2022 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.networkstack.tethering;
+
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_0;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_1;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_NONE;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.halVerToString;
+import static com.android.networkstack.tethering.util.TetheringUtils.uint16;
+
+import android.annotation.NonNull;
+import android.hardware.tetheroffload.config.V1_0.IOffloadConfig;
+import android.hardware.tetheroffload.control.V1_0.IOffloadControl;
+import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate;
+import android.hardware.tetheroffload.control.V1_0.NetworkProtocol;
+import android.hardware.tetheroffload.control.V1_0.OffloadCallbackEvent;
+import android.hardware.tetheroffload.control.V1_1.ITetheringOffloadCallback;
+import android.os.Handler;
+import android.os.NativeHandle;
+import android.os.RemoteException;
+import android.system.OsConstants;
+import android.util.Log;
+
+import com.android.net.module.util.SharedLog;
+import com.android.networkstack.tethering.OffloadHardwareInterface.ForwardedStats;
+import com.android.networkstack.tethering.OffloadHardwareInterface.OffloadHalCallback;
+
+import java.util.ArrayList;
+import java.util.NoSuchElementException;
+
+/**
+ * The implementation of IOffloadHal which based on HIDL interfaces
+ */
+public class OffloadHalHidlImpl implements IOffloadHal {
+    private static final String TAG = OffloadHalHidlImpl.class.getSimpleName();
+    private static final String YIELDS = " -> ";
+
+    private final Handler mHandler;
+    private final SharedLog mLog;
+    private final IOffloadConfig mIOffloadConfig;
+    private final IOffloadControl mIOffloadControl;
+    @OffloadHardwareInterface.OffloadHalVersion
+    private final int mOffloadControlVersion;
+
+    private OffloadHalCallback mOffloadHalCallback;
+    private TetheringOffloadCallback mTetheringOffloadCallback;
+
+    public OffloadHalHidlImpl(int version, @NonNull IOffloadConfig config,
+            @NonNull IOffloadControl control, @NonNull Handler handler, @NonNull SharedLog log) {
+        mOffloadControlVersion = version;
+        mIOffloadConfig = config;
+        mIOffloadControl = control;
+        mHandler = handler;
+        mLog = log.forSubComponent(TAG);
+    }
+
+    /**
+     * Initialize the Tetheroffload HAL. Provides bound netlink file descriptors for use in the
+     * management process.
+     */
+    public boolean initOffload(@NonNull NativeHandle handle1, @NonNull NativeHandle handle2,
+            @NonNull OffloadHalCallback callback) {
+        final String logmsg = String.format("initOffload(%d, %d, %s)",
+                handle1.getFileDescriptor().getInt$(), handle2.getFileDescriptor().getInt$(),
+                (callback == null) ? "null"
+                : "0x" + Integer.toHexString(System.identityHashCode(callback)));
+
+        mOffloadHalCallback = callback;
+        mTetheringOffloadCallback = new TetheringOffloadCallback(
+                mHandler, mOffloadHalCallback, mLog, mOffloadControlVersion);
+        final CbResults results = new CbResults();
+        try {
+            mIOffloadConfig.setHandles(handle1, handle2,
+                    (boolean success, String errMsg) -> {
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
+                    });
+            mIOffloadControl.initOffload(
+                    mTetheringOffloadCallback,
+                    (boolean success, String errMsg) -> {
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
+                    });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return false;
+        }
+
+        record(logmsg, results);
+        return results.mSuccess;
+    }
+
+    /** Stop the Tetheroffload HAL. */
+    public boolean stopOffload() {
+        try {
+            mIOffloadControl.stopOffload(
+                    (boolean success, String errMsg) -> {
+                        if (!success) mLog.e("stopOffload failed: " + errMsg);
+                    });
+        } catch (RemoteException e) {
+            mLog.e("failed to stopOffload: " + e);
+        }
+        mOffloadHalCallback = null;
+        mTetheringOffloadCallback = null;
+        mLog.log("stopOffload()");
+        return true;
+    }
+
+    /** Get HAL interface version number. */
+    public int getVersion() {
+        return mOffloadControlVersion;
+    }
+
+    /** Get Tx/Rx usage from last query. */
+    public ForwardedStats getForwardedStats(@NonNull String upstream) {
+        final String logmsg = String.format("getForwardedStats(%s)",  upstream);
+
+        final ForwardedStats stats = new ForwardedStats();
+        try {
+            mIOffloadControl.getForwardedStats(
+                    upstream,
+                    (long rxBytes, long txBytes) -> {
+                        stats.rxBytes = (rxBytes > 0) ? rxBytes : 0;
+                        stats.txBytes = (txBytes > 0) ? txBytes : 0;
+                    });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return stats;
+        }
+
+        return stats;
+    }
+
+    /** Set local prefixes to offload management process. */
+    public boolean setLocalPrefixes(@NonNull ArrayList<String> localPrefixes) {
+        final String logmsg = String.format("setLocalPrefixes([%s])",
+                String.join(",", localPrefixes));
+
+        final CbResults results = new CbResults();
+        try {
+            mIOffloadControl.setLocalPrefixes(localPrefixes,
+                    (boolean success, String errMsg) -> {
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
+                    });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return false;
+        }
+
+        record(logmsg, results);
+        return results.mSuccess;
+    }
+
+    /** Set data limit value to offload management process. */
+    public boolean setDataLimit(@NonNull String iface, long limit) {
+
+        final String logmsg = String.format("setDataLimit(%s, %d)", iface, limit);
+
+        final CbResults results = new CbResults();
+        try {
+            mIOffloadControl.setDataLimit(
+                    iface, limit,
+                    (boolean success, String errMsg) -> {
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
+                    });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return false;
+        }
+
+        record(logmsg, results);
+        return results.mSuccess;
+    }
+
+    /** Set data warning and limit value to offload management process. */
+    public boolean setDataWarningAndLimit(@NonNull String iface, long warning, long limit) {
+        if (mOffloadControlVersion < OFFLOAD_HAL_VERSION_HIDL_1_1) {
+            throw new UnsupportedOperationException(
+                    "setDataWarningAndLimit is not supported below HAL V1.1");
+        }
+        final String logmsg =
+                String.format("setDataWarningAndLimit(%s, %d, %d)", iface, warning, limit);
+
+        final CbResults results = new CbResults();
+        try {
+            ((android.hardware.tetheroffload.control.V1_1.IOffloadControl) mIOffloadControl)
+                    .setDataWarningAndLimit(
+                            iface, warning, limit,
+                            (boolean success, String errMsg) -> {
+                                results.mSuccess = success;
+                                results.mErrMsg = errMsg;
+                            });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return false;
+        }
+
+        record(logmsg, results);
+        return results.mSuccess;
+    }
+
+    /** Set upstream parameters to offload management process. */
+    public boolean setUpstreamParameters(@NonNull String iface, @NonNull String v4addr,
+            @NonNull String v4gateway, @NonNull ArrayList<String> v6gws) {
+        final String logmsg = String.format("setUpstreamParameters(%s, %s, %s, [%s])",
+                iface, v4addr, v4gateway, String.join(",", v6gws));
+
+        final CbResults results = new CbResults();
+        try {
+            mIOffloadControl.setUpstreamParameters(
+                    iface, v4addr, v4gateway, v6gws,
+                    (boolean success, String errMsg) -> {
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
+                    });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return false;
+        }
+
+        record(logmsg, results);
+        return results.mSuccess;
+    }
+
+    /** Add downstream prefix to offload management process. */
+    public boolean addDownstream(@NonNull String ifname, @NonNull String prefix) {
+        final String logmsg = String.format("addDownstream(%s, %s)", ifname, prefix);
+
+        final CbResults results = new CbResults();
+        try {
+            mIOffloadControl.addDownstream(ifname, prefix,
+                    (boolean success, String errMsg) -> {
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
+                    });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return false;
+        }
+
+        record(logmsg, results);
+        return results.mSuccess;
+    }
+
+    /** Remove downstream prefix from offload management process. */
+    public boolean removeDownstream(@NonNull String ifname, @NonNull String prefix) {
+        final String logmsg = String.format("removeDownstream(%s, %s)", ifname, prefix);
+
+        final CbResults results = new CbResults();
+        try {
+            mIOffloadControl.removeDownstream(ifname, prefix,
+                    (boolean success, String errMsg) -> {
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
+                    });
+        } catch (RemoteException e) {
+            record(logmsg, e);
+            return false;
+        }
+
+        record(logmsg, results);
+        return results.mSuccess;
+    }
+
+    /**
+     * Get {@link IOffloadHal} object from the HIDL service.
+     *
+     * @param handler {@link Handler} to specify the thread upon which the callback will be invoked.
+     * @param log Log to be used by the repository.
+     */
+    public static IOffloadHal getIOffloadHal(Handler handler, SharedLog log) {
+        IOffloadConfig config = null;
+        try {
+            config = IOffloadConfig.getService(true /*retry*/);
+        } catch (RemoteException | NoSuchElementException e) {
+            log.e("getIOffloadConfig error " + e);
+            return null;
+        }
+
+        IOffloadControl control = null;
+        int version = OFFLOAD_HAL_VERSION_NONE;
+        try {
+            control = android.hardware.tetheroffload.control
+                    .V1_1.IOffloadControl.getService(true /*retry*/);
+            version = OFFLOAD_HAL_VERSION_HIDL_1_1;
+        } catch (NoSuchElementException e) {
+            // Unsupported by device.
+        } catch (RemoteException e) {
+            log.e("Unable to get offload control " + OFFLOAD_HAL_VERSION_HIDL_1_1);
+        }
+        if (control == null) {
+            try {
+                control = IOffloadControl.getService(true /*retry*/);
+                version = OFFLOAD_HAL_VERSION_HIDL_1_0;
+            } catch (NoSuchElementException e) {
+                // Unsupported by device.
+            } catch (RemoteException e) {
+                log.e("Unable to get offload control " + OFFLOAD_HAL_VERSION_HIDL_1_0);
+            }
+        }
+
+        if (config == null || control == null) return null;
+
+        return new OffloadHalHidlImpl(version, config, control, handler, log);
+    }
+
+    private void record(String msg, Throwable t) {
+        mLog.e(msg + YIELDS + "exception: " + t);
+    }
+
+    private void record(String msg, CbResults results) {
+        final String logmsg = msg + YIELDS + results;
+        if (!results.mSuccess) {
+            mLog.e(logmsg);
+        } else {
+            mLog.log(logmsg);
+        }
+    }
+
+    private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub {
+        public final Handler handler;
+        public final OffloadHalCallback callback;
+        public final SharedLog log;
+        private final int mOffloadControlVersion;
+
+        TetheringOffloadCallback(
+                Handler h, OffloadHalCallback cb, SharedLog sharedLog, int offloadControlVersion) {
+            handler = h;
+            callback = cb;
+            log = sharedLog;
+            this.mOffloadControlVersion = offloadControlVersion;
+        }
+
+        private void handleOnEvent(int event) {
+            switch (event) {
+                case OffloadCallbackEvent.OFFLOAD_STARTED:
+                    callback.onStarted();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR:
+                    callback.onStoppedError();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED:
+                    callback.onStoppedUnsupported();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE:
+                    callback.onSupportAvailable();
+                    break;
+                case OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED:
+                    callback.onStoppedLimitReached();
+                    break;
+                case android.hardware.tetheroffload.control
+                        .V1_1.OffloadCallbackEvent.OFFLOAD_WARNING_REACHED:
+                    callback.onWarningReached();
+                    break;
+                default:
+                    log.e("Unsupported OffloadCallbackEvent: " + event);
+            }
+        }
+
+        @Override
+        public void onEvent(int event) {
+            // The implementation should never call onEvent()) if the event is already reported
+            // through newer callback.
+            if (mOffloadControlVersion > OFFLOAD_HAL_VERSION_HIDL_1_0) {
+                Log.wtf(TAG, "onEvent(" + event + ") fired on HAL "
+                        + halVerToString(mOffloadControlVersion));
+            }
+            handler.post(() -> {
+                handleOnEvent(event);
+            });
+        }
+
+        @Override
+        public void onEvent_1_1(int event) {
+            if (mOffloadControlVersion < OFFLOAD_HAL_VERSION_HIDL_1_1) {
+                Log.wtf(TAG, "onEvent_1_1(" + event + ") fired on HAL "
+                        + halVerToString(mOffloadControlVersion));
+                return;
+            }
+            handler.post(() -> {
+                handleOnEvent(event);
+            });
+        }
+
+        @Override
+        public void updateTimeout(NatTimeoutUpdate params) {
+            handler.post(() -> {
+                callback.onNatTimeoutUpdate(
+                        networkProtocolToOsConstant(params.proto),
+                        params.src.addr, uint16(params.src.port),
+                        params.dst.addr, uint16(params.dst.port));
+            });
+        }
+    }
+
+    private static int networkProtocolToOsConstant(int proto) {
+        switch (proto) {
+            case NetworkProtocol.TCP: return OsConstants.IPPROTO_TCP;
+            case NetworkProtocol.UDP: return OsConstants.IPPROTO_UDP;
+            default:
+                // The caller checks this value and will log an error. Just make
+                // sure it won't collide with valid OsConstants.IPPROTO_* values.
+                return -Math.abs(proto);
+        }
+    }
+
+    private static class CbResults {
+        boolean mSuccess;
+        String mErrMsg;
+
+        @Override
+        public String toString() {
+            if (mSuccess) {
+                return "ok";
+            } else {
+                return "fail: " + mErrMsg;
+            }
+        }
+    }
+}
diff --git a/Tethering/src/com/android/networkstack/tethering/OffloadHardwareInterface.java b/Tethering/src/com/android/networkstack/tethering/OffloadHardwareInterface.java
index 76ddfe5..ea20063 100644
--- a/Tethering/src/com/android/networkstack/tethering/OffloadHardwareInterface.java
+++ b/Tethering/src/com/android/networkstack/tethering/OffloadHardwareInterface.java
@@ -18,25 +18,15 @@
 
 import static com.android.net.module.util.netlink.StructNlMsgHdr.NLM_F_DUMP;
 import static com.android.net.module.util.netlink.StructNlMsgHdr.NLM_F_REQUEST;
-import static com.android.networkstack.tethering.util.TetheringUtils.uint16;
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.hardware.tetheroffload.config.V1_0.IOffloadConfig;
-import android.hardware.tetheroffload.control.V1_0.IOffloadControl;
-import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate;
-import android.hardware.tetheroffload.control.V1_0.NetworkProtocol;
-import android.hardware.tetheroffload.control.V1_0.OffloadCallbackEvent;
-import android.hardware.tetheroffload.control.V1_1.ITetheringOffloadCallback;
 import android.net.util.SocketUtils;
 import android.os.Handler;
 import android.os.NativeHandle;
-import android.os.RemoteException;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.system.OsConstants;
-import android.util.Log;
-import android.util.Pair;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.net.module.util.SharedLog;
@@ -54,8 +44,6 @@
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.util.ArrayList;
-import java.util.NoSuchElementException;
-
 
 /**
  * Capture tethering dependencies, for injection.
@@ -86,43 +74,43 @@
     private final Handler mHandler;
     private final SharedLog mLog;
     private final Dependencies mDeps;
-    private IOffloadControl mOffloadControl;
+    private IOffloadHal mIOffload;
 
     // TODO: Use major-minor version control to prevent from defining new constants.
     static final int OFFLOAD_HAL_VERSION_NONE = 0;
-    static final int OFFLOAD_HAL_VERSION_1_0 = 1;
-    static final int OFFLOAD_HAL_VERSION_1_1 = 2;
+    static final int OFFLOAD_HAL_VERSION_HIDL_1_0 = 1;
+    static final int OFFLOAD_HAL_VERSION_HIDL_1_1 = 2;
+    static final int OFFLOAD_HAL_VERSION_AIDL = 3;
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = "OFFLOAD_HAL_VERSION_", value = {
             OFFLOAD_HAL_VERSION_NONE,
-            OFFLOAD_HAL_VERSION_1_0,
-            OFFLOAD_HAL_VERSION_1_1
+            OFFLOAD_HAL_VERSION_HIDL_1_0,
+            OFFLOAD_HAL_VERSION_HIDL_1_1,
+            OFFLOAD_HAL_VERSION_AIDL,
     })
     public @interface OffloadHalVersion {}
-    @OffloadHalVersion
-    private int mOffloadControlVersion = OFFLOAD_HAL_VERSION_NONE;
 
     @NonNull
     static String halVerToString(int version) {
         switch(version) {
-            case OFFLOAD_HAL_VERSION_1_0:
-                return "1.0";
-            case OFFLOAD_HAL_VERSION_1_1:
-                return "1.1";
+            case OFFLOAD_HAL_VERSION_HIDL_1_0:
+                return "HIDL 1.0";
+            case OFFLOAD_HAL_VERSION_HIDL_1_1:
+                return "HIDL 1.1";
+            case OFFLOAD_HAL_VERSION_AIDL:
+                return "AIDL";
             case OFFLOAD_HAL_VERSION_NONE:
                 return "None";
             default:
                 throw new IllegalArgumentException("Unsupported version int " + version);
         }
-
     }
 
-    private TetheringOffloadCallback mTetheringOffloadCallback;
-    private ControlCallback mControlCallback;
+    private OffloadHalCallback mOffloadHalCallback;
 
     /** The callback to notify status of offload management process. */
-    public static class ControlCallback {
+    public static class OffloadHalCallback {
         /** Offload started. */
         public void onStarted() {}
         /**
@@ -179,7 +167,7 @@
     }
 
     public OffloadHardwareInterface(Handler h, SharedLog log) {
-        this(h, log, new Dependencies(log));
+        this(h, log, new Dependencies(h, log));
     }
 
     OffloadHardwareInterface(Handler h, SharedLog log, Dependencies deps) {
@@ -190,45 +178,21 @@
 
     /** Capture OffloadHardwareInterface dependencies, for injection. */
     static class Dependencies {
+        private final Handler mHandler;
         private final SharedLog mLog;
 
-        Dependencies(SharedLog log) {
+        Dependencies(Handler handler, SharedLog log) {
+            mHandler = handler;
             mLog = log;
         }
 
-        public IOffloadConfig getOffloadConfig() {
-            try {
-                return IOffloadConfig.getService(true /*retry*/);
-            } catch (RemoteException | NoSuchElementException e) {
-                mLog.e("getIOffloadConfig error " + e);
-                return null;
-            }
-        }
-
-        @NonNull
-        public Pair<IOffloadControl, Integer> getOffloadControl() {
-            IOffloadControl hal = null;
-            int version = OFFLOAD_HAL_VERSION_NONE;
-            try {
-                hal = android.hardware.tetheroffload.control
-                        .V1_1.IOffloadControl.getService(true /*retry*/);
-                version = OFFLOAD_HAL_VERSION_1_1;
-            } catch (NoSuchElementException e) {
-                // Unsupported by device.
-            } catch (RemoteException e) {
-                mLog.e("Unable to get offload control " + OFFLOAD_HAL_VERSION_1_1);
-            }
+        public IOffloadHal getOffload() {
+            // Prefer AIDL implementation if its service is declared.
+            IOffloadHal hal = OffloadHalAidlImpl.getIOffloadHal(mHandler, mLog);
             if (hal == null) {
-                try {
-                    hal = IOffloadControl.getService(true /*retry*/);
-                    version = OFFLOAD_HAL_VERSION_1_0;
-                } catch (NoSuchElementException e) {
-                    // Unsupported by device.
-                } catch (RemoteException e) {
-                    mLog.e("Unable to get offload control " + OFFLOAD_HAL_VERSION_1_0);
-                }
+                hal = OffloadHalHidlImpl.getIOffloadHal(mHandler, mLog);
             }
-            return new Pair<IOffloadControl, Integer>(hal, version);
+            return hal;
         }
 
         public NativeHandle createConntrackSocket(final int groups) {
@@ -273,56 +237,6 @@
         return DEFAULT_TETHER_OFFLOAD_DISABLED;
     }
 
-    /**
-     * Offload management process need to know conntrack rules to support NAT, but it may not have
-     * permission to create netlink netfilter sockets. Create two netlink netfilter sockets and
-     * share them with offload management process.
-     */
-    public boolean initOffloadConfig() {
-        final IOffloadConfig offloadConfig = mDeps.getOffloadConfig();
-        if (offloadConfig == null) {
-            mLog.e("Could not find IOffloadConfig service");
-            return false;
-        }
-        // Per the IConfigOffload definition:
-        //
-        // h1    provides a file descriptor bound to the following netlink groups
-        //       (NF_NETLINK_CONNTRACK_NEW | NF_NETLINK_CONNTRACK_DESTROY).
-        //
-        // h2    provides a file descriptor bound to the following netlink groups
-        //       (NF_NETLINK_CONNTRACK_UPDATE | NF_NETLINK_CONNTRACK_DESTROY).
-        final NativeHandle h1 = mDeps.createConntrackSocket(
-                NF_NETLINK_CONNTRACK_NEW | NF_NETLINK_CONNTRACK_DESTROY);
-        if (h1 == null) return false;
-
-        requestSocketDump(h1);
-
-        final NativeHandle h2 = mDeps.createConntrackSocket(
-                NF_NETLINK_CONNTRACK_UPDATE | NF_NETLINK_CONNTRACK_DESTROY);
-        if (h2 == null) {
-            closeFdInNativeHandle(h1);
-            return false;
-        }
-
-        final CbResults results = new CbResults();
-        try {
-            offloadConfig.setHandles(h1, h2,
-                    (boolean success, String errMsg) -> {
-                        results.mSuccess = success;
-                        results.mErrMsg = errMsg;
-                    });
-        } catch (RemoteException e) {
-            record("initOffloadConfig, setHandles fail", e);
-            return false;
-        }
-        // Explicitly close FDs.
-        closeFdInNativeHandle(h1);
-        closeFdInNativeHandle(h2);
-
-        record("initOffloadConfig, setHandles results:", results);
-        return results.mSuccess;
-    }
-
     @VisibleForTesting
     void sendIpv4NfGenMsg(@NonNull NativeHandle handle, short type, short flags) {
         final int length = StructNlMsgHdr.STRUCT_SIZE + StructNfGenMsg.STRUCT_SIZE;
@@ -355,165 +269,107 @@
                 (short) (NLM_F_REQUEST | NLM_F_DUMP));
     }
 
-    private void closeFdInNativeHandle(final NativeHandle h) {
-        try {
-            h.close();
-        } catch (IOException | IllegalStateException e) {
-            // IllegalStateException means fd is already closed, do nothing here.
-            // Also nothing we can do if IOException.
+    private void maybeCloseFdInNativeHandles(final NativeHandle... handles) {
+        for (NativeHandle h : handles) {
+            if (h == null) continue;
+            try {
+                h.close();
+            } catch (IOException | IllegalStateException e) {
+                // IllegalStateException means fd is already closed, do nothing here.
+                // Also nothing we can do if IOException.
+            }
         }
     }
 
+    private int initWithHandles(NativeHandle h1, NativeHandle h2) {
+        if (h1 == null || h2 == null) {
+            mLog.e("Failed to create socket.");
+            return OFFLOAD_HAL_VERSION_NONE;
+        }
+
+        requestSocketDump(h1);
+        if (!mIOffload.initOffload(h1, h2, mOffloadHalCallback)) {
+            mIOffload.stopOffload();
+            mLog.e("Failed to initialize offload.");
+            return OFFLOAD_HAL_VERSION_NONE;
+        }
+
+        return mIOffload.getVersion();
+    }
+
     /**
      * Initialize the tethering offload HAL.
      *
      * @return one of {@code OFFLOAD_HAL_VERSION_*} represents the HAL version, or
      *         {@link #OFFLOAD_HAL_VERSION_NONE} if failed.
      */
-    public int initOffloadControl(ControlCallback controlCb) {
-        mControlCallback = controlCb;
-
-        if (mOffloadControl == null) {
-            final Pair<IOffloadControl, Integer> halAndVersion = mDeps.getOffloadControl();
-            mOffloadControl = halAndVersion.first;
-            mOffloadControlVersion = halAndVersion.second;
-            if (mOffloadControl == null) {
-                mLog.e("tethering IOffloadControl.getService() returned null");
+    public int initOffload(OffloadHalCallback offloadCb) {
+        if (mIOffload == null) {
+            mIOffload = mDeps.getOffload();
+            if (mIOffload == null) {
+                mLog.e("No tethering offload HAL service found.");
                 return OFFLOAD_HAL_VERSION_NONE;
             }
-            mLog.i("tethering offload control version "
-                    + halVerToString(mOffloadControlVersion) + " is supported.");
+            mLog.i("Tethering offload version "
+                    + halVerToString(mIOffload.getVersion()) + " is supported.");
         }
 
-        final String logmsg = String.format("initOffloadControl(%s)",
-                (controlCb == null) ? "null"
-                        : "0x" + Integer.toHexString(System.identityHashCode(controlCb)));
+        // Per the IOffload definition:
+        //
+        // h1    provides a file descriptor bound to the following netlink groups
+        //       (NF_NETLINK_CONNTRACK_NEW | NF_NETLINK_CONNTRACK_DESTROY).
+        //
+        // h2    provides a file descriptor bound to the following netlink groups
+        //       (NF_NETLINK_CONNTRACK_UPDATE | NF_NETLINK_CONNTRACK_DESTROY).
+        final NativeHandle h1 = mDeps.createConntrackSocket(
+                NF_NETLINK_CONNTRACK_NEW | NF_NETLINK_CONNTRACK_DESTROY);
+        final NativeHandle h2 = mDeps.createConntrackSocket(
+                NF_NETLINK_CONNTRACK_UPDATE | NF_NETLINK_CONNTRACK_DESTROY);
 
-        mTetheringOffloadCallback = new TetheringOffloadCallback(
-                mHandler, mControlCallback, mLog, mOffloadControlVersion);
-        final CbResults results = new CbResults();
-        try {
-            mOffloadControl.initOffload(
-                    mTetheringOffloadCallback,
-                    (boolean success, String errMsg) -> {
-                        results.mSuccess = success;
-                        results.mErrMsg = errMsg;
-                    });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return OFFLOAD_HAL_VERSION_NONE;
+        mOffloadHalCallback = offloadCb;
+        final int version = initWithHandles(h1, h2);
+
+        // Explicitly close FDs for HIDL. AIDL will pass the original FDs to the service,
+        // they shouldn't be closed here.
+        if (version < OFFLOAD_HAL_VERSION_AIDL) {
+            maybeCloseFdInNativeHandles(h1, h2);
         }
-
-        record(logmsg, results);
-        return results.mSuccess ? mOffloadControlVersion : OFFLOAD_HAL_VERSION_NONE;
+        return version;
     }
 
-    /** Stop IOffloadControl. */
-    public void stopOffloadControl() {
-        if (mOffloadControl != null) {
-            try {
-                mOffloadControl.stopOffload(
-                        (boolean success, String errMsg) -> {
-                            if (!success) mLog.e("stopOffload failed: " + errMsg);
-                        });
-            } catch (RemoteException e) {
-                mLog.e("failed to stopOffload: " + e);
+    /** Stop the tethering offload HAL. */
+    public void stopOffload() {
+        if (mIOffload != null) {
+            if (!mIOffload.stopOffload()) {
+                mLog.e("Failed to stop offload.");
             }
         }
-        mOffloadControl = null;
-        mTetheringOffloadCallback = null;
-        mControlCallback = null;
-        mLog.log("stopOffloadControl()");
+        mIOffload = null;
+        mOffloadHalCallback = null;
     }
 
     /** Get Tx/Rx usage from last query. */
     public ForwardedStats getForwardedStats(String upstream) {
-        final String logmsg = String.format("getForwardedStats(%s)",  upstream);
-
-        final ForwardedStats stats = new ForwardedStats();
-        try {
-            mOffloadControl.getForwardedStats(
-                    upstream,
-                    (long rxBytes, long txBytes) -> {
-                        stats.rxBytes = (rxBytes > 0) ? rxBytes : 0;
-                        stats.txBytes = (txBytes > 0) ? txBytes : 0;
-                    });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return stats;
-        }
-
-        return stats;
+        return mIOffload.getForwardedStats(upstream);
     }
 
     /** Set local prefixes to offload management process. */
     public boolean setLocalPrefixes(ArrayList<String> localPrefixes) {
-        final String logmsg = String.format("setLocalPrefixes([%s])",
-                String.join(",", localPrefixes));
-
-        final CbResults results = new CbResults();
-        try {
-            mOffloadControl.setLocalPrefixes(localPrefixes,
-                    (boolean success, String errMsg) -> {
-                        results.mSuccess = success;
-                        results.mErrMsg = errMsg;
-                    });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return false;
-        }
-
-        record(logmsg, results);
-        return results.mSuccess;
+        return mIOffload.setLocalPrefixes(localPrefixes);
     }
 
     /** Set data limit value to offload management process. */
     public boolean setDataLimit(String iface, long limit) {
-
-        final String logmsg = String.format("setDataLimit(%s, %d)", iface, limit);
-
-        final CbResults results = new CbResults();
-        try {
-            mOffloadControl.setDataLimit(
-                    iface, limit,
-                    (boolean success, String errMsg) -> {
-                        results.mSuccess = success;
-                        results.mErrMsg = errMsg;
-                    });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return false;
-        }
-
-        record(logmsg, results);
-        return results.mSuccess;
+        return mIOffload.setDataLimit(iface, limit);
     }
 
     /** Set data warning and limit value to offload management process. */
     public boolean setDataWarningAndLimit(String iface, long warning, long limit) {
-        if (mOffloadControlVersion < OFFLOAD_HAL_VERSION_1_1) {
-            throw new IllegalArgumentException(
+        if (mIOffload.getVersion() < OFFLOAD_HAL_VERSION_HIDL_1_1) {
+            throw new UnsupportedOperationException(
                     "setDataWarningAndLimit is not supported below HAL V1.1");
         }
-        final String logmsg =
-                String.format("setDataWarningAndLimit(%s, %d, %d)", iface, warning, limit);
-
-        final CbResults results = new CbResults();
-        try {
-            ((android.hardware.tetheroffload.control.V1_1.IOffloadControl) mOffloadControl)
-                    .setDataWarningAndLimit(
-                            iface, warning, limit,
-                            (boolean success, String errMsg) -> {
-                                results.mSuccess = success;
-                                results.mErrMsg = errMsg;
-                            });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return false;
-        }
-
-        record(logmsg, results);
-        return results.mSuccess;
+        return mIOffload.setDataWarningAndLimit(iface, warning, limit);
     }
 
     /** Set upstream parameters to offload management process. */
@@ -523,178 +379,16 @@
         v4addr = (v4addr != null) ? v4addr : NO_IPV4_ADDRESS;
         v4gateway = (v4gateway != null) ? v4gateway : NO_IPV4_GATEWAY;
         v6gws = (v6gws != null) ? v6gws : new ArrayList<>();
-
-        final String logmsg = String.format("setUpstreamParameters(%s, %s, %s, [%s])",
-                iface, v4addr, v4gateway, String.join(",", v6gws));
-
-        final CbResults results = new CbResults();
-        try {
-            mOffloadControl.setUpstreamParameters(
-                    iface, v4addr, v4gateway, v6gws,
-                    (boolean success, String errMsg) -> {
-                        results.mSuccess = success;
-                        results.mErrMsg = errMsg;
-                    });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return false;
-        }
-
-        record(logmsg, results);
-        return results.mSuccess;
+        return mIOffload.setUpstreamParameters(iface, v4addr, v4gateway, v6gws);
     }
 
     /** Add downstream prefix to offload management process. */
-    public boolean addDownstreamPrefix(String ifname, String prefix) {
-        final String logmsg = String.format("addDownstreamPrefix(%s, %s)", ifname, prefix);
-
-        final CbResults results = new CbResults();
-        try {
-            mOffloadControl.addDownstream(ifname, prefix,
-                    (boolean success, String errMsg) -> {
-                        results.mSuccess = success;
-                        results.mErrMsg = errMsg;
-                    });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return false;
-        }
-
-        record(logmsg, results);
-        return results.mSuccess;
+    public boolean addDownstream(String ifname, String prefix) {
+        return  mIOffload.addDownstream(ifname, prefix);
     }
 
     /** Remove downstream prefix from offload management process. */
-    public boolean removeDownstreamPrefix(String ifname, String prefix) {
-        final String logmsg = String.format("removeDownstreamPrefix(%s, %s)", ifname, prefix);
-
-        final CbResults results = new CbResults();
-        try {
-            mOffloadControl.removeDownstream(ifname, prefix,
-                    (boolean success, String errMsg) -> {
-                        results.mSuccess = success;
-                        results.mErrMsg = errMsg;
-                    });
-        } catch (RemoteException e) {
-            record(logmsg, e);
-            return false;
-        }
-
-        record(logmsg, results);
-        return results.mSuccess;
-    }
-
-    private void record(String msg, Throwable t) {
-        mLog.e(msg + YIELDS + "exception: " + t);
-    }
-
-    private void record(String msg, CbResults results) {
-        final String logmsg = msg + YIELDS + results;
-        if (!results.mSuccess) {
-            mLog.e(logmsg);
-        } else {
-            mLog.log(logmsg);
-        }
-    }
-
-    private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub {
-        public final Handler handler;
-        public final ControlCallback controlCb;
-        public final SharedLog log;
-        private final int mOffloadControlVersion;
-
-        TetheringOffloadCallback(
-                Handler h, ControlCallback cb, SharedLog sharedLog, int offloadControlVersion) {
-            handler = h;
-            controlCb = cb;
-            log = sharedLog;
-            this.mOffloadControlVersion = offloadControlVersion;
-        }
-
-        private void handleOnEvent(int event) {
-            switch (event) {
-                case OffloadCallbackEvent.OFFLOAD_STARTED:
-                    controlCb.onStarted();
-                    break;
-                case OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR:
-                    controlCb.onStoppedError();
-                    break;
-                case OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED:
-                    controlCb.onStoppedUnsupported();
-                    break;
-                case OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE:
-                    controlCb.onSupportAvailable();
-                    break;
-                case OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED:
-                    controlCb.onStoppedLimitReached();
-                    break;
-                case android.hardware.tetheroffload.control
-                        .V1_1.OffloadCallbackEvent.OFFLOAD_WARNING_REACHED:
-                    controlCb.onWarningReached();
-                    break;
-                default:
-                    log.e("Unsupported OffloadCallbackEvent: " + event);
-            }
-        }
-
-        @Override
-        public void onEvent(int event) {
-            // The implementation should never call onEvent()) if the event is already reported
-            // through newer callback.
-            if (mOffloadControlVersion > OFFLOAD_HAL_VERSION_1_0) {
-                Log.wtf(TAG, "onEvent(" + event + ") fired on HAL "
-                        + halVerToString(mOffloadControlVersion));
-            }
-            handler.post(() -> {
-                handleOnEvent(event);
-            });
-        }
-
-        @Override
-        public void onEvent_1_1(int event) {
-            if (mOffloadControlVersion < OFFLOAD_HAL_VERSION_1_1) {
-                Log.wtf(TAG, "onEvent_1_1(" + event + ") fired on HAL "
-                        + halVerToString(mOffloadControlVersion));
-                return;
-            }
-            handler.post(() -> {
-                handleOnEvent(event);
-            });
-        }
-
-        @Override
-        public void updateTimeout(NatTimeoutUpdate params) {
-            handler.post(() -> {
-                controlCb.onNatTimeoutUpdate(
-                        networkProtocolToOsConstant(params.proto),
-                        params.src.addr, uint16(params.src.port),
-                        params.dst.addr, uint16(params.dst.port));
-            });
-        }
-    }
-
-    private static int networkProtocolToOsConstant(int proto) {
-        switch (proto) {
-            case NetworkProtocol.TCP: return OsConstants.IPPROTO_TCP;
-            case NetworkProtocol.UDP: return OsConstants.IPPROTO_UDP;
-            default:
-                // The caller checks this value and will log an error. Just make
-                // sure it won't collide with valid OsContants.IPPROTO_* values.
-                return -Math.abs(proto);
-        }
-    }
-
-    private static class CbResults {
-        boolean mSuccess;
-        String mErrMsg;
-
-        @Override
-        public String toString() {
-            if (mSuccess) {
-                return "ok";
-            } else {
-                return "fail: " + mErrMsg;
-            }
-        }
+    public boolean removeDownstream(String ifname, String prefix) {
+        return  mIOffload.removeDownstream(ifname, prefix);
     }
 }
diff --git a/Tethering/src/com/android/networkstack/tethering/Tethering.java b/Tethering/src/com/android/networkstack/tethering/Tethering.java
index 2e71fda..4c5bf4e 100644
--- a/Tethering/src/com/android/networkstack/tethering/Tethering.java
+++ b/Tethering/src/com/android/networkstack/tethering/Tethering.java
@@ -1861,6 +1861,7 @@
                 mNotificationUpdater.onUpstreamCapabilitiesChanged(
                         (ns != null) ? ns.networkCapabilities : null);
             }
+            mTetheringMetrics.maybeUpdateUpstreamType(ns);
         }
 
         protected void setUpstreamNetwork(UpstreamNetworkState ns) {
@@ -2090,6 +2091,7 @@
                     mNotificationUpdater.onUpstreamCapabilitiesChanged(null);
                 }
                 mBpfCoordinator.stopPolling();
+                mTetheringMetrics.cleanup();
             }
 
             private boolean updateUpstreamWanted() {
diff --git a/Tethering/src/com/android/networkstack/tethering/metrics/TetheringMetrics.java b/Tethering/src/com/android/networkstack/tethering/metrics/TetheringMetrics.java
index ffcea4e..c181994 100644
--- a/Tethering/src/com/android/networkstack/tethering/metrics/TetheringMetrics.java
+++ b/Tethering/src/com/android/networkstack/tethering/metrics/TetheringMetrics.java
@@ -16,6 +16,13 @@
 
 package com.android.networkstack.tethering.metrics;
 
+import static android.net.NetworkCapabilities.TRANSPORT_BLUETOOTH;
+import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
+import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET;
+import static android.net.NetworkCapabilities.TRANSPORT_LOWPAN;
+import static android.net.NetworkCapabilities.TRANSPORT_VPN;
+import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
+import static android.net.NetworkCapabilities.TRANSPORT_WIFI_AWARE;
 import static android.net.TetheringManager.TETHERING_BLUETOOTH;
 import static android.net.TetheringManager.TETHERING_ETHERNET;
 import static android.net.TetheringManager.TETHERING_NCM;
@@ -39,6 +46,8 @@
 import static android.net.TetheringManager.TETHER_ERROR_UNSUPPORTED;
 import static android.net.TetheringManager.TETHER_ERROR_UNTETHER_IFACE_ERROR;
 
+import android.annotation.Nullable;
+import android.net.NetworkCapabilities;
 import android.stats.connectivity.DownstreamType;
 import android.stats.connectivity.ErrorCode;
 import android.stats.connectivity.UpstreamType;
@@ -49,6 +58,11 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 
+import com.android.networkstack.tethering.UpstreamNetworkState;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
 /**
  * Collection of utilities for tethering metrics.
  *
@@ -66,21 +80,58 @@
     private static final String SYSTEMUI_PKG_NAME = "com.android.systemui";
     private static final String GMS_PKG_NAME = "com.google.android.gms";
     private final SparseArray<NetworkTetheringReported.Builder> mBuilderMap = new SparseArray<>();
+    private final SparseArray<Long> mDownstreamStartTime = new SparseArray<Long>();
+    private final ArrayList<RecordUpstreamEvent> mUpstreamEventList = new ArrayList<>();
+    private UpstreamType mCurrentUpstream = null;
+    private Long mCurrentUpStreamStartTime = 0L;
 
-    /** Update Tethering stats about caller's package name and downstream type. */
-    public void createBuilder(final int downstreamType, final String callerPkg) {
-        NetworkTetheringReported.Builder statsBuilder =
-                    NetworkTetheringReported.newBuilder();
-        statsBuilder.setDownstreamType(downstreamTypeToEnum(downstreamType))
-                    .setUserType(userTypeToEnum(callerPkg))
-                    .setUpstreamType(UpstreamType.UT_UNKNOWN)
-                    .setErrorCode(ErrorCode.EC_NO_ERROR)
-                    .setUpstreamEvents(UpstreamEvents.newBuilder())
-                    .setDurationMillis(0);
-        mBuilderMap.put(downstreamType, statsBuilder);
+
+    /**
+     * Return the current system time in milliseconds.
+     * @return the current system time in milliseconds.
+     */
+    public long timeNow() {
+        return System.currentTimeMillis();
     }
 
-    /** Update error code of given downstreamType. */
+    private static class RecordUpstreamEvent {
+        public final long mStartTime;
+        public final long mStopTime;
+        public final UpstreamType mUpstreamType;
+
+        RecordUpstreamEvent(final long startTime, final long stopTime,
+                final UpstreamType upstream) {
+            mStartTime = startTime;
+            mStopTime = stopTime;
+            mUpstreamType = upstream;
+        }
+    }
+
+    /**
+     * Creates a |NetworkTetheringReported.Builder| object to update the tethering stats for the
+     * specified downstream type and caller's package name. Initializes the upstream events, error
+     * code, and duration to default values. Sets the start time for the downstream type in the
+     * |mDownstreamStartTime| map.
+     * @param downstreamType The type of downstream connection (e.g. Wifi, USB, Bluetooth).
+     * @param callerPkg The package name of the caller.
+     */
+    public void createBuilder(final int downstreamType, final String callerPkg) {
+        NetworkTetheringReported.Builder statsBuilder = NetworkTetheringReported.newBuilder()
+                .setDownstreamType(downstreamTypeToEnum(downstreamType))
+                .setUserType(userTypeToEnum(callerPkg))
+                .setUpstreamType(UpstreamType.UT_UNKNOWN)
+                .setErrorCode(ErrorCode.EC_NO_ERROR)
+                .setUpstreamEvents(UpstreamEvents.newBuilder())
+                .setDurationMillis(0);
+        mBuilderMap.put(downstreamType, statsBuilder);
+        mDownstreamStartTime.put(downstreamType, timeNow());
+    }
+
+    /**
+     * Update the error code of the given downstream type in the Tethering stats.
+     * @param downstreamType The downstream type whose error code to update.
+     * @param errCode The error code to set.
+     */
     public void updateErrorCode(final int downstreamType, final int errCode) {
         NetworkTetheringReported.Builder statsBuilder = mBuilderMap.get(downstreamType);
         if (statsBuilder == null) {
@@ -90,38 +141,155 @@
         statsBuilder.setErrorCode(errorCodeToEnum(errCode));
     }
 
-    /** Remove Tethering stats.
-     *  If Tethering stats is ready to write then write it before removing.
+    /**
+     * Update the list of upstream types and their duration whenever the current upstream type
+     * changes.
+     * @param ns The UpstreamNetworkState object representing the current upstream network state.
+     */
+    public void maybeUpdateUpstreamType(@Nullable final UpstreamNetworkState ns) {
+        UpstreamType upstream = transportTypeToUpstreamTypeEnum(ns);
+        if (upstream.equals(mCurrentUpstream)) return;
+
+        final long newTime = timeNow();
+        if (mCurrentUpstream != null) {
+            mUpstreamEventList.add(new RecordUpstreamEvent(mCurrentUpStreamStartTime, newTime,
+                    mCurrentUpstream));
+        }
+        mCurrentUpstream = upstream;
+        mCurrentUpStreamStartTime = newTime;
+    }
+
+    /**
+     * Returns the greater of two start times.
+     * @param first the first start time
+     * @param second the second start time
+     * @return the greater start time
+     */
+    private long getGreaterStartTime(long first, long second) {
+        return first > second ? first : second;
+    }
+
+    /**
+     * Updates the upstream events builder with a new upstream event.
+     * @param upstreamEventsBuilder the builder for the upstream events list
+     * @param start the start time of the upstream event
+     * @param stop the stop time of the upstream event
+     * @param upstream the type of upstream type (e.g. Wifi, Cellular, Bluetooth, ...)
+     */
+    private void updateUpstreamEvents(final UpstreamEvents.Builder upstreamEventsBuilder,
+            final long start, final long stop, @Nullable final UpstreamType upstream) {
+        final UpstreamEvent.Builder upstreamEventBuilder = UpstreamEvent.newBuilder()
+                .setUpstreamType(upstream == null ? UpstreamType.UT_NO_NETWORK : upstream)
+                .setDurationMillis(stop - start);
+        upstreamEventsBuilder.addUpstreamEvent(upstreamEventBuilder);
+    }
+
+    /**
+     * Updates the |NetworkTetheringReported.Builder| with relevant upstream events associated with
+     * the downstream event identified by the given downstream start time.
+     *
+     * This method iterates through the list of upstream events and adds any relevant events to a
+     * |UpstreamEvents.Builder|. Upstream events are considered relevant if their stop time is
+     * greater than or equal to the given downstream start time. The method also adds the last
+     * upstream event that occurred up until the current time.
+     *
+     * The resulting |UpstreamEvents.Builder| is then added to the
+     * |NetworkTetheringReported.Builder|, along with the duration of the downstream event
+     * (i.e., stop time minus downstream start time).
+     *
+     * @param statsBuilder the builder for the NetworkTetheringReported message
+     * @param downstreamStartTime the start time of the downstream event to find relevant upstream
+     * events for
+     */
+    private void updateStatsBuilderToWrite(final NetworkTetheringReported.Builder statsBuilder,
+                    final long downstreamStartTime) {
+        UpstreamEvents.Builder upstreamEventsBuilder = UpstreamEvents.newBuilder();
+        for (RecordUpstreamEvent event : mUpstreamEventList) {
+            if (downstreamStartTime > event.mStopTime) continue;
+
+            final long startTime = getGreaterStartTime(downstreamStartTime, event.mStartTime);
+            // Handle completed upstream events.
+            updateUpstreamEvents(upstreamEventsBuilder, startTime, event.mStopTime,
+                    event.mUpstreamType);
+        }
+        final long startTime = getGreaterStartTime(downstreamStartTime, mCurrentUpStreamStartTime);
+        final long stopTime = timeNow();
+        // Handle the last upstream event.
+        updateUpstreamEvents(upstreamEventsBuilder, startTime, stopTime, mCurrentUpstream);
+        statsBuilder.setUpstreamEvents(upstreamEventsBuilder);
+        statsBuilder.setDurationMillis(stopTime - downstreamStartTime);
+    }
+
+    /**
+     * Removes tethering statistics for the given downstream type. If there are any stats to write
+     * for the downstream event associated with the type, they are written before removing the
+     * statistics.
+     *
+     * If the given downstream type does not exist in the map, an error message is logged and the
+     * method returns without doing anything.
+     *
+     * @param downstreamType the type of downstream event to remove statistics for
      */
     public void sendReport(final int downstreamType) {
-        final NetworkTetheringReported.Builder statsBuilder =
-                mBuilderMap.get(downstreamType);
+        final NetworkTetheringReported.Builder statsBuilder = mBuilderMap.get(downstreamType);
         if (statsBuilder == null) {
             Log.e(TAG, "Given downstreamType does not exist, this is a bug!");
             return;
         }
+
+        updateStatsBuilderToWrite(statsBuilder, mDownstreamStartTime.get(downstreamType));
         write(statsBuilder.build());
+
         mBuilderMap.remove(downstreamType);
+        mDownstreamStartTime.remove(downstreamType);
     }
 
-    /** Collect Tethering stats and write metrics data to statsd pipeline. */
+    /**
+     * Collects tethering statistics and writes them to the statsd pipeline. This method takes in a
+     * NetworkTetheringReported object, extracts its fields and uses them to write statistics data
+     * to the statsd pipeline.
+     *
+     * @param reported a NetworkTetheringReported object containing statistics to write
+     */
     @VisibleForTesting
     public void write(@NonNull final NetworkTetheringReported reported) {
-        TetheringStatsLog.write(TetheringStatsLog.NETWORK_TETHERING_REPORTED,
+        final byte[] upstreamEvents = reported.getUpstreamEvents().toByteArray();
+
+        TetheringStatsLog.write(
+                TetheringStatsLog.NETWORK_TETHERING_REPORTED,
                 reported.getErrorCode().getNumber(),
                 reported.getDownstreamType().getNumber(),
                 reported.getUpstreamType().getNumber(),
                 reported.getUserType().getNumber(),
-                null, 0);
+                upstreamEvents,
+                reported.getDurationMillis());
         if (DBG) {
-            Log.d(TAG, "Write errorCode: " + reported.getErrorCode().getNumber()
-                    + ", downstreamType: " + reported.getDownstreamType().getNumber()
-                    + ", upstreamType: " + reported.getUpstreamType().getNumber()
-                    + ", userType: " + reported.getUserType().getNumber());
+            Log.d(
+                    TAG,
+                    "Write errorCode: "
+                    + reported.getErrorCode().getNumber()
+                    + ", downstreamType: "
+                    + reported.getDownstreamType().getNumber()
+                    + ", upstreamType: "
+                    + reported.getUpstreamType().getNumber()
+                    + ", userType: "
+                    + reported.getUserType().getNumber()
+                    + ", upstreamTypes: "
+                    + Arrays.toString(upstreamEvents)
+                    + ", durationMillis: "
+                    + reported.getDurationMillis());
         }
     }
 
-    /** Map {@link TetheringType} to {@link DownstreamType} */
+    /**
+     * Cleans up the variables related to upstream events when tethering is turned off.
+     */
+    public void cleanup() {
+        mUpstreamEventList.clear();
+        mCurrentUpstream = null;
+        mCurrentUpStreamStartTime = 0L;
+    }
+
     private DownstreamType downstreamTypeToEnum(final int ifaceType) {
         switch(ifaceType) {
             case TETHERING_WIFI:
@@ -141,7 +309,6 @@
         }
     }
 
-    /** Map {@link StartTetheringError} to {@link ErrorCode} */
     private ErrorCode errorCodeToEnum(final int lastError) {
         switch(lastError) {
             case TETHER_ERROR_NO_ERROR:
@@ -181,7 +348,6 @@
         }
     }
 
-    /** Map callerPkg to {@link UserType} */
     private UserType userTypeToEnum(final String callerPkg) {
         if (callerPkg.equals(SETTINGS_PKG_NAME)) {
             return UserType.USER_SETTINGS;
@@ -193,4 +359,40 @@
             return UserType.USER_UNKNOWN;
         }
     }
+
+    private UpstreamType transportTypeToUpstreamTypeEnum(final UpstreamNetworkState ns) {
+        final NetworkCapabilities nc = (ns != null) ? ns.networkCapabilities : null;
+        if (nc == null) return UpstreamType.UT_NO_NETWORK;
+
+        final int typeCount = nc.getTransportTypes().length;
+
+        boolean hasCellular = nc.hasTransport(TRANSPORT_CELLULAR);
+        boolean hasWifi = nc.hasTransport(TRANSPORT_WIFI);
+        boolean hasBT = nc.hasTransport(TRANSPORT_BLUETOOTH);
+        boolean hasEthernet = nc.hasTransport(TRANSPORT_ETHERNET);
+        boolean hasVpn = nc.hasTransport(TRANSPORT_VPN);
+        boolean hasWifiAware = nc.hasTransport(TRANSPORT_WIFI_AWARE);
+        boolean hasLopan = nc.hasTransport(TRANSPORT_LOWPAN);
+
+        if (typeCount == 3 && hasCellular && hasWifi && hasVpn) {
+            return UpstreamType.UT_WIFI_CELLULAR_VPN;
+        }
+
+        if (typeCount == 2 && hasVpn) {
+            if (hasCellular) return UpstreamType.UT_CELLULAR_VPN;
+            if (hasWifi) return UpstreamType.UT_WIFI_VPN;
+            if (hasBT) return UpstreamType.UT_BLUETOOTH_VPN;
+            if (hasEthernet) return UpstreamType.UT_ETHERNET_VPN;
+        }
+
+        if (typeCount == 1) {
+            if (hasCellular) return UpstreamType.UT_CELLULAR;
+            if (hasWifi) return UpstreamType.UT_WIFI;
+            if (hasBT) return UpstreamType.UT_BLUETOOTH;
+            if (hasEthernet) return UpstreamType.UT_ETHERNET;
+            if (hasWifiAware) return UpstreamType.UT_WIFI_AWARE;
+            if (hasLopan) return UpstreamType.UT_LOWPAN;
+        }
+        return UpstreamType.UT_UNKNOWN;
+    }
 }
diff --git a/Tethering/tests/integration/base/android/net/EthernetTetheringTestBase.java b/Tethering/tests/integration/base/android/net/EthernetTetheringTestBase.java
index f2cf1d0..007bf23 100644
--- a/Tethering/tests/integration/base/android/net/EthernetTetheringTestBase.java
+++ b/Tethering/tests/integration/base/android/net/EthernetTetheringTestBase.java
@@ -215,6 +215,13 @@
         }
     }
 
+    protected void stopEthernetTethering(final MyTetheringEventCallback callback) {
+        runAsShell(TETHER_PRIVILEGED, () -> {
+            mTm.stopTethering(TETHERING_ETHERNET);
+            maybeUnregisterTetheringEventCallback(callback);
+        });
+    }
+
     protected void cleanUp() throws Exception {
         setPreferTestNetworks(false);
 
@@ -253,6 +260,7 @@
             if (mRunTests) cleanUp();
         } finally {
             mHandlerThread.quitSafely();
+            mHandlerThread.join();
             mUiAutomation.dropShellPermissionIdentity();
         }
     }
diff --git a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
index 12ac454..55854e2 100644
--- a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
+++ b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
@@ -364,7 +364,7 @@
             // Enable Ethernet tethering and check that it starts.
             tetheringEventCallback = enableEthernetTethering(iface, null /* any upstream */);
         } finally {
-            maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+            stopEthernetTethering(tetheringEventCallback);
         }
         // There is nothing more we can do on a physical interface without connecting an actual
         // client, which is not possible in this test.
diff --git a/Tethering/tests/mts/src/android/tethering/mts/MtsEthernetTetheringTest.java b/Tethering/tests/mts/src/android/tethering/mts/MtsEthernetTetheringTest.java
index cb57d13..c2bc812 100644
--- a/Tethering/tests/mts/src/android/tethering/mts/MtsEthernetTetheringTest.java
+++ b/Tethering/tests/mts/src/android/tethering/mts/MtsEthernetTetheringTest.java
@@ -80,8 +80,8 @@
     // Per RX UDP packet size: iphdr (20) + udphdr (8) + payload (2) = 30 bytes.
     private static final int RX_UDP_PACKET_SIZE = 30;
     private static final int RX_UDP_PACKET_COUNT = 456;
-    // Per TX UDP packet size: ethhdr (14) + iphdr (20) + udphdr (8) + payload (2) = 44 bytes.
-    private static final int TX_UDP_PACKET_SIZE = 44;
+    // Per TX UDP packet size: iphdr (20) + udphdr (8) + payload (2) = 30 bytes.
+    private static final int TX_UDP_PACKET_SIZE = 30;
     private static final int TX_UDP_PACKET_COUNT = 123;
 
     private static final String DUMPSYS_TETHERING_RAWMAP_ARG = "bpfRawMap";
diff --git a/Tethering/tests/privileged/src/com/android/networkstack/tethering/ConntrackSocketTest.java b/Tethering/tests/privileged/src/com/android/networkstack/tethering/ConntrackSocketTest.java
index 706df4e..b3fb3e4 100644
--- a/Tethering/tests/privileged/src/com/android/networkstack/tethering/ConntrackSocketTest.java
+++ b/Tethering/tests/privileged/src/com/android/networkstack/tethering/ConntrackSocketTest.java
@@ -80,7 +80,7 @@
         // Looper must be prepared here since AndroidJUnitRunner runs tests on separate threads.
         if (Looper.myLooper() == null) Looper.prepare();
 
-        mDeps = new OffloadHardwareInterface.Dependencies(mLog);
+        mDeps = new OffloadHardwareInterface.Dependencies(mHandler, mLog);
         mOffloadHw = new OffloadHardwareInterface(mHandler, mLog, mDeps);
     }
 
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java
index faca1c8..36c15a7 100644
--- a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java
@@ -31,8 +31,8 @@
 import static com.android.networkstack.tethering.OffloadController.StatsType.STATS_PER_IFACE;
 import static com.android.networkstack.tethering.OffloadController.StatsType.STATS_PER_UID;
 import static com.android.networkstack.tethering.OffloadHardwareInterface.ForwardedStats;
-import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_1_0;
-import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_1_1;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_0;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_1;
 import static com.android.networkstack.tethering.TetheringConfiguration.DEFAULT_TETHER_OFFLOAD_POLL_INTERVAL_MS;
 import static com.android.testutils.MiscAsserts.assertContainsAll;
 import static com.android.testutils.MiscAsserts.assertThrows;
@@ -79,6 +79,7 @@
 
 import com.android.internal.util.test.FakeSettingsProvider;
 import com.android.net.module.util.SharedLog;
+import com.android.networkstack.tethering.OffloadHardwareInterface.OffloadHalCallback;
 import com.android.testutils.DevSdkIgnoreRule;
 import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
 import com.android.testutils.TestableNetworkStatsProviderCbBinder;
@@ -125,8 +126,8 @@
     private OffloadController.OffloadTetheringStatsProvider mTetherStatsProvider;
     private final ArgumentCaptor<ArrayList> mStringArrayCaptor =
             ArgumentCaptor.forClass(ArrayList.class);
-    private final ArgumentCaptor<OffloadHardwareInterface.ControlCallback> mControlCallbackCaptor =
-            ArgumentCaptor.forClass(OffloadHardwareInterface.ControlCallback.class);
+    private final ArgumentCaptor<OffloadHalCallback> mOffloadHalCallbackCaptor =
+            ArgumentCaptor.forClass(OffloadHalCallback.class);
     private MockContentResolver mContentResolver;
     private final TestLooper mTestLooper = new TestLooper();
     private OffloadController.Dependencies mDeps = new OffloadController.Dependencies() {
@@ -151,10 +152,9 @@
         FakeSettingsProvider.clearSettingsProvider();
     }
 
-    private void setupFunctioningHardwareInterface(int controlVersion) {
-        when(mHardware.initOffloadConfig()).thenReturn(true);
-        when(mHardware.initOffloadControl(mControlCallbackCaptor.capture()))
-                .thenReturn(controlVersion);
+    private void setupFunctioningHardwareInterface(int offloadHalVersion) {
+        when(mHardware.initOffload(mOffloadHalCallbackCaptor.capture()))
+                .thenReturn(offloadHalVersion);
         when(mHardware.setUpstreamParameters(anyString(), any(), any(), any())).thenReturn(true);
         when(mHardware.getForwardedStats(any())).thenReturn(new ForwardedStats());
         when(mHardware.setDataLimit(anyString(), anyLong())).thenReturn(true);
@@ -192,9 +192,9 @@
     @Test
     public void testStartStop() throws Exception {
         stopOffloadController(
-                startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/));
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/));
         stopOffloadController(
-                startOffloadController(OFFLOAD_HAL_VERSION_1_1, true /*expectStart*/));
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_1, true /*expectStart*/));
     }
 
     @NonNull
@@ -206,9 +206,8 @@
 
         final InOrder inOrder = inOrder(mHardware);
         inOrder.verify(mHardware, times(1)).getDefaultTetherOffloadDisabled();
-        inOrder.verify(mHardware, times(expectStart ? 1 : 0)).initOffloadConfig();
-        inOrder.verify(mHardware, times(expectStart ? 1 : 0)).initOffloadControl(
-                any(OffloadHardwareInterface.ControlCallback.class));
+        inOrder.verify(mHardware, times(expectStart ? 1 : 0)).initOffload(
+                any(OffloadHalCallback.class));
         inOrder.verifyNoMoreInteractions();
         // Clear counters only instead of whole mock to preserve the mocking setup.
         clearInvocations(mHardware);
@@ -218,7 +217,7 @@
     private void stopOffloadController(final OffloadController offload) throws Exception {
         final InOrder inOrder = inOrder(mHardware);
         offload.stop();
-        inOrder.verify(mHardware, times(1)).stopOffloadControl();
+        inOrder.verify(mHardware, times(1)).stopOffload();
         inOrder.verifyNoMoreInteractions();
         reset(mHardware);
     }
@@ -228,7 +227,7 @@
         when(mHardware.getDefaultTetherOffloadDisabled()).thenReturn(1);
         assertThrows(SettingNotFoundException.class, () ->
                 Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED));
-        startOffloadController(OFFLOAD_HAL_VERSION_1_0, false /*expectStart*/);
+        startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, false /*expectStart*/);
     }
 
     @Test
@@ -236,26 +235,26 @@
         when(mHardware.getDefaultTetherOffloadDisabled()).thenReturn(0);
         assertThrows(SettingNotFoundException.class, () ->
                 Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED));
-        startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+        startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
     }
 
     @Test
     public void testSettingsAllowsStart() throws Exception {
         Settings.Global.putInt(mContentResolver, TETHER_OFFLOAD_DISABLED, 0);
-        startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+        startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
     }
 
     @Test
     public void testSettingsDisablesStart() throws Exception {
         Settings.Global.putInt(mContentResolver, TETHER_OFFLOAD_DISABLED, 1);
-        startOffloadController(OFFLOAD_HAL_VERSION_1_0, false /*expectStart*/);
+        startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, false /*expectStart*/);
     }
 
     @Test
     public void testSetUpstreamLinkPropertiesWorking() throws Exception {
         enableOffload();
         final OffloadController offload =
-                startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
 
         // In reality, the UpstreamNetworkMonitor would have passed down to us
         // a covering set of local prefixes representing a minimum essential
@@ -426,7 +425,7 @@
     public void testGetForwardedStats() throws Exception {
         enableOffload();
         final OffloadController offload =
-                startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
 
         final String ethernetIface = "eth1";
         final String mobileIface = "rmnet_data0";
@@ -521,11 +520,11 @@
         // Verify the OffloadController is called by R framework, where the framework doesn't send
         // warning.
         // R only uses HAL 1.0.
-        checkSetDataWarningAndLimit(false, OFFLOAD_HAL_VERSION_1_0);
+        checkSetDataWarningAndLimit(false, OFFLOAD_HAL_VERSION_HIDL_1_0);
         // Verify the OffloadController is called by S+ framework, where the framework sends
         // warning along with limit.
-        checkSetDataWarningAndLimit(true, OFFLOAD_HAL_VERSION_1_0);
-        checkSetDataWarningAndLimit(true, OFFLOAD_HAL_VERSION_1_1);
+        checkSetDataWarningAndLimit(true, OFFLOAD_HAL_VERSION_HIDL_1_0);
+        checkSetDataWarningAndLimit(true, OFFLOAD_HAL_VERSION_HIDL_1_1);
     }
 
     private void checkSetDataWarningAndLimit(boolean isProviderSetWarning, int controlVersion)
@@ -550,7 +549,7 @@
         when(mHardware.setDataWarningAndLimit(anyString(), anyLong(), anyLong())).thenReturn(true);
         offload.setUpstreamLinkProperties(lp);
         // Applying an interface sends the initial quota to the hardware.
-        if (controlVersion >= OFFLOAD_HAL_VERSION_1_1) {
+        if (controlVersion >= OFFLOAD_HAL_VERSION_HIDL_1_1) {
             inOrder.verify(mHardware).setDataWarningAndLimit(ethernetIface, Long.MAX_VALUE,
                     Long.MAX_VALUE);
         } else {
@@ -576,7 +575,7 @@
             mTetherStatsProvider.onSetLimit(ethernetIface, ethernetLimit);
         }
         waitForIdle();
-        if (controlVersion >= OFFLOAD_HAL_VERSION_1_1) {
+        if (controlVersion >= OFFLOAD_HAL_VERSION_HIDL_1_1) {
             inOrder.verify(mHardware).setDataWarningAndLimit(ethernetIface, Long.MAX_VALUE,
                     ethernetLimit);
         } else {
@@ -591,7 +590,7 @@
             mTetherStatsProvider.onSetLimit(mobileIface, mobileLimit);
         }
         waitForIdle();
-        if (controlVersion >= OFFLOAD_HAL_VERSION_1_1) {
+        if (controlVersion >= OFFLOAD_HAL_VERSION_HIDL_1_1) {
             inOrder.verify(mHardware, never()).setDataWarningAndLimit(anyString(), anyLong(),
                     anyLong());
         } else {
@@ -603,7 +602,7 @@
         lp.setInterfaceName(mobileIface);
         offload.setUpstreamLinkProperties(lp);
         waitForIdle();
-        if (controlVersion >= OFFLOAD_HAL_VERSION_1_1) {
+        if (controlVersion >= OFFLOAD_HAL_VERSION_HIDL_1_1) {
             inOrder.verify(mHardware).setDataWarningAndLimit(mobileIface,
                     isProviderSetWarning ? mobileWarning : Long.MAX_VALUE,
                     mobileLimit);
@@ -620,7 +619,7 @@
             mTetherStatsProvider.onSetLimit(mobileIface, NetworkStatsProvider.QUOTA_UNLIMITED);
         }
         waitForIdle();
-        if (controlVersion >= OFFLOAD_HAL_VERSION_1_1) {
+        if (controlVersion >= OFFLOAD_HAL_VERSION_HIDL_1_1) {
             inOrder.verify(mHardware).setDataWarningAndLimit(mobileIface, Long.MAX_VALUE,
                     Long.MAX_VALUE);
         } else {
@@ -655,15 +654,15 @@
         }
         waitForIdle();
         inOrder.verify(mHardware).getForwardedStats(ethernetIface);
-        inOrder.verify(mHardware).stopOffloadControl();
+        inOrder.verify(mHardware).stopOffload();
     }
 
     @Test
     public void testDataWarningAndLimitCallback_LimitReached() throws Exception {
         enableOffload();
-        startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+        startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
 
-        final OffloadHardwareInterface.ControlCallback callback = mControlCallbackCaptor.getValue();
+        final OffloadHalCallback callback = mOffloadHalCallbackCaptor.getValue();
         callback.onStoppedLimitReached();
         mTetherStatsProviderCb.expectNotifyStatsUpdated();
 
@@ -679,8 +678,8 @@
     @Test
     @IgnoreUpTo(Build.VERSION_CODES.R)  // HAL 1.1 is only supported from S
     public void testDataWarningAndLimitCallback_WarningReached() throws Exception {
-        startOffloadController(OFFLOAD_HAL_VERSION_1_1, true /*expectStart*/);
-        final OffloadHardwareInterface.ControlCallback callback = mControlCallbackCaptor.getValue();
+        startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_1, true /*expectStart*/);
+        final OffloadHalCallback callback = mOffloadHalCallbackCaptor.getValue();
         callback.onWarningReached();
         mTetherStatsProviderCb.expectNotifyStatsUpdated();
 
@@ -695,7 +694,7 @@
     public void testAddRemoveDownstreams() throws Exception {
         enableOffload();
         final OffloadController offload =
-                startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
         final InOrder inOrder = inOrder(mHardware);
 
         // Tethering makes several calls to setLocalPrefixes() before add/remove
@@ -710,14 +709,14 @@
         usbLinkProperties.addRoute(
                 new RouteInfo(new IpPrefix(USB_PREFIX), null, null, RTN_UNICAST));
         offload.notifyDownstreamLinkProperties(usbLinkProperties);
-        inOrder.verify(mHardware, times(1)).addDownstreamPrefix(RNDIS0, USB_PREFIX);
+        inOrder.verify(mHardware, times(1)).addDownstream(RNDIS0, USB_PREFIX);
         inOrder.verifyNoMoreInteractions();
 
         // [2] Routes for IPv6 link-local prefixes should never be added.
         usbLinkProperties.addRoute(
                 new RouteInfo(new IpPrefix(IPV6_LINKLOCAL), null, null, RTN_UNICAST));
         offload.notifyDownstreamLinkProperties(usbLinkProperties);
-        inOrder.verify(mHardware, never()).addDownstreamPrefix(eq(RNDIS0), anyString());
+        inOrder.verify(mHardware, never()).addDownstream(eq(RNDIS0), anyString());
         inOrder.verifyNoMoreInteractions();
 
         // [3] Add an IPv6 prefix for good measure. Only new offload-able
@@ -726,14 +725,14 @@
         usbLinkProperties.addRoute(
                 new RouteInfo(new IpPrefix(IPV6_DOC_PREFIX), null, null, RTN_UNICAST));
         offload.notifyDownstreamLinkProperties(usbLinkProperties);
-        inOrder.verify(mHardware, times(1)).addDownstreamPrefix(RNDIS0, IPV6_DOC_PREFIX);
+        inOrder.verify(mHardware, times(1)).addDownstream(RNDIS0, IPV6_DOC_PREFIX);
         inOrder.verifyNoMoreInteractions();
 
         // [4] Adding addresses doesn't affect notifyDownstreamLinkProperties().
         // The address is passed in by a separate setLocalPrefixes() invocation.
         usbLinkProperties.addLinkAddress(new LinkAddress("2001:db8::2/64"));
         offload.notifyDownstreamLinkProperties(usbLinkProperties);
-        inOrder.verify(mHardware, never()).addDownstreamPrefix(eq(RNDIS0), anyString());
+        inOrder.verify(mHardware, never()).addDownstream(eq(RNDIS0), anyString());
 
         // [5] Differences in local routes are converted into addDownstream()
         // and removeDownstream() invocations accordingly.
@@ -742,8 +741,8 @@
         usbLinkProperties.addRoute(
                 new RouteInfo(new IpPrefix(IPV6_DISCARD_PREFIX), null, null, RTN_UNICAST));
         offload.notifyDownstreamLinkProperties(usbLinkProperties);
-        inOrder.verify(mHardware, times(1)).removeDownstreamPrefix(RNDIS0, IPV6_DOC_PREFIX);
-        inOrder.verify(mHardware, times(1)).addDownstreamPrefix(RNDIS0, IPV6_DISCARD_PREFIX);
+        inOrder.verify(mHardware, times(1)).removeDownstream(RNDIS0, IPV6_DOC_PREFIX);
+        inOrder.verify(mHardware, times(1)).addDownstream(RNDIS0, IPV6_DISCARD_PREFIX);
         inOrder.verifyNoMoreInteractions();
 
         // [6] Removing a downstream interface which was never added causes no
@@ -753,8 +752,8 @@
 
         // [7] Removing an active downstream removes all remaining prefixes.
         offload.removeDownstreamInterface(RNDIS0);
-        inOrder.verify(mHardware, times(1)).removeDownstreamPrefix(RNDIS0, USB_PREFIX);
-        inOrder.verify(mHardware, times(1)).removeDownstreamPrefix(RNDIS0, IPV6_DISCARD_PREFIX);
+        inOrder.verify(mHardware, times(1)).removeDownstream(RNDIS0, USB_PREFIX);
+        inOrder.verify(mHardware, times(1)).removeDownstream(RNDIS0, IPV6_DISCARD_PREFIX);
         inOrder.verifyNoMoreInteractions();
     }
 
@@ -762,7 +761,7 @@
     public void testControlCallbackOnStoppedUnsupportedFetchesAllStats() throws Exception {
         enableOffload();
         final OffloadController offload =
-                startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
 
         // Pretend to set a few different upstreams (only the interface name
         // matters for this test; we're ignoring IP and route information).
@@ -776,7 +775,7 @@
         // that happen with setUpstreamParameters().
         clearInvocations(mHardware);
 
-        OffloadHardwareInterface.ControlCallback callback = mControlCallbackCaptor.getValue();
+        OffloadHalCallback callback = mOffloadHalCallbackCaptor.getValue();
         callback.onStoppedUnsupported();
 
         // Verify forwarded stats behaviour.
@@ -793,7 +792,7 @@
             throws Exception {
         enableOffload();
         final OffloadController offload =
-                startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
 
         // Pretend to set a few different upstreams (only the interface name
         // matters for this test; we're ignoring IP and route information).
@@ -840,7 +839,7 @@
         // that happen with setUpstreamParameters().
         clearInvocations(mHardware);
 
-        OffloadHardwareInterface.ControlCallback callback = mControlCallbackCaptor.getValue();
+        OffloadHalCallback callback = mOffloadHalCallbackCaptor.getValue();
         callback.onSupportAvailable();
 
         // Verify forwarded stats behaviour.
@@ -859,8 +858,8 @@
                 // into OffloadController proper. After this, also check for:
                 //     "192.168.43.1/32", "2001:2::1/128", "2001:2::2/128"
                 "127.0.0.0/8", "192.0.2.0/24", "fe80::/64", "2001:db8::/64");
-        verify(mHardware, times(1)).addDownstreamPrefix(WLAN0, "192.168.43.0/24");
-        verify(mHardware, times(1)).addDownstreamPrefix(WLAN0, "2001:2::/64");
+        verify(mHardware, times(1)).addDownstream(WLAN0, "192.168.43.0/24");
+        verify(mHardware, times(1)).addDownstream(WLAN0, "2001:2::/64");
         verify(mHardware, times(1)).setUpstreamParameters(eq(RMNET0), any(), any(), any());
         verify(mHardware, times(1)).setDataLimit(eq(RMNET0), anyLong());
         verifyNoMoreInteractions(mHardware);
@@ -871,7 +870,7 @@
         enableOffload();
         setOffloadPollInterval(DEFAULT_TETHER_OFFLOAD_POLL_INTERVAL_MS);
         final OffloadController offload =
-                startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/);
+                startOffloadController(OFFLOAD_HAL_VERSION_HIDL_1_0, true /*expectStart*/);
 
         // Initialize with fake eth upstream.
         final String ethernetIface = "eth1";
@@ -925,7 +924,7 @@
         offload.setUpstreamLinkProperties(makeEthernetLinkProperties());
         mTetherStatsProvider.onSetAlert(0);
         waitForIdle();
-        if (controlVersion >= OFFLOAD_HAL_VERSION_1_1) {
+        if (controlVersion >= OFFLOAD_HAL_VERSION_HIDL_1_1) {
             mTetherStatsProviderCb.assertNoCallback();
         } else {
             mTetherStatsProviderCb.expectNotifyAlertReached();
@@ -935,7 +934,7 @@
 
     @Test
     public void testSoftwarePollingUsed() throws Exception {
-        checkSoftwarePollingUsed(OFFLOAD_HAL_VERSION_1_0);
-        checkSoftwarePollingUsed(OFFLOAD_HAL_VERSION_1_1);
+        checkSoftwarePollingUsed(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        checkSoftwarePollingUsed(OFFLOAD_HAL_VERSION_HIDL_1_1);
     }
 }
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHalAidlImplTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHalAidlImplTest.java
new file mode 100644
index 0000000..c9ce64f
--- /dev/null
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHalAidlImplTest.java
@@ -0,0 +1,390 @@
+/*
+ * Copyright (C) 2022 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.networkstack.tethering;
+
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_AIDL;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.anyLong;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.hardware.tetheroffload.ForwardedStats;
+import android.hardware.tetheroffload.IOffload;
+import android.hardware.tetheroffload.IPv4AddrPortPair;
+import android.hardware.tetheroffload.ITetheringOffloadCallback;
+import android.hardware.tetheroffload.NatTimeoutUpdate;
+import android.hardware.tetheroffload.NetworkProtocol;
+import android.hardware.tetheroffload.OffloadCallbackEvent;
+import android.os.Handler;
+import android.os.NativeHandle;
+import android.os.ParcelFileDescriptor;
+import android.os.ServiceSpecificException;
+import android.os.test.TestLooper;
+import android.system.OsConstants;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.net.module.util.SharedLog;
+import com.android.networkstack.tethering.OffloadHardwareInterface.OffloadHalCallback;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InOrder;
+import org.mockito.MockitoAnnotations;
+
+import java.io.FileDescriptor;
+import java.util.ArrayList;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public final class OffloadHalAidlImplTest {
+    private static final String RMNET0 = "test_rmnet_data0";
+
+    private final SharedLog mLog = new SharedLog("test");
+    private final TestLooper mTestLooper = new TestLooper();
+
+    private IOffload mIOffloadMock;
+    private OffloadHalAidlImpl mIOffloadHal;
+    private ITetheringOffloadCallback mTetheringOffloadCallback;
+    private OffloadHalCallback mOffloadHalCallback;
+
+    private void initAndValidateOffloadHal(boolean initSuccess)
+            throws Exception {
+        final FileDescriptor fd1 = new FileDescriptor();
+        final FileDescriptor fd2 = new FileDescriptor();
+        final NativeHandle handle1 = new NativeHandle(fd1, true);
+        final NativeHandle handle2 = new NativeHandle(fd2, true);
+        final ArgumentCaptor<ParcelFileDescriptor> fdCaptor1 =
+                ArgumentCaptor.forClass(ParcelFileDescriptor.class);
+        final ArgumentCaptor<ParcelFileDescriptor> fdCaptor2 =
+                ArgumentCaptor.forClass(ParcelFileDescriptor.class);
+        final ArgumentCaptor<ITetheringOffloadCallback> offloadCallbackCaptor =
+                ArgumentCaptor.forClass(ITetheringOffloadCallback.class);
+        if (initSuccess) {
+            doNothing().when(mIOffloadMock).initOffload(any(), any(), any());
+        } else {
+            doThrow(new IllegalStateException()).when(mIOffloadMock).initOffload(any(), any(),
+                    any());
+        }
+        assertEquals(mIOffloadHal.initOffload(handle1, handle2, mOffloadHalCallback),
+                     initSuccess);
+        verify(mIOffloadMock).initOffload(fdCaptor1.capture(), fdCaptor2.capture(),
+                                          offloadCallbackCaptor.capture());
+        assertEquals(fdCaptor1.getValue().getFd(), fd1.getInt$());
+        assertEquals(fdCaptor2.getValue().getFd(), fd2.getInt$());
+        mTetheringOffloadCallback = offloadCallbackCaptor.getValue();
+    }
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mIOffloadMock = mock(IOffload.class);
+        mIOffloadHal = new OffloadHalAidlImpl(OFFLOAD_HAL_VERSION_AIDL, mIOffloadMock,
+                new Handler(mTestLooper.getLooper()), mLog);
+        mOffloadHalCallback = spy(new OffloadHalCallback());
+    }
+
+    @Test
+    public void testInitOffloadSuccess() throws Exception {
+        initAndValidateOffloadHal(true /* initSuccess */);
+    }
+
+    @Test
+    public void testInitOffloadFailure() throws Exception {
+        initAndValidateOffloadHal(false /* initSuccess */);
+    }
+
+    @Test
+    public void testStopOffloadSuccess() throws Exception {
+        initAndValidateOffloadHal(true);
+        doNothing().when(mIOffloadMock).stopOffload();
+        assertTrue(mIOffloadHal.stopOffload());
+        verify(mIOffloadMock).stopOffload();
+    }
+
+    @Test
+    public void testStopOffloadFailure() throws Exception {
+        initAndValidateOffloadHal(true);
+        doThrow(new IllegalStateException()).when(mIOffloadMock).stopOffload();
+        assertFalse(mIOffloadHal.stopOffload());
+    }
+
+    private void doTestGetForwardedStats(boolean expectSuccess) throws Exception {
+        initAndValidateOffloadHal(true);
+        final ForwardedStats returnStats = new ForwardedStats();
+        if (expectSuccess) {
+            returnStats.rxBytes = 12345;
+            returnStats.txBytes = 67890;
+            when(mIOffloadMock.getForwardedStats(anyString())).thenReturn(returnStats);
+        } else {
+            when(mIOffloadMock.getForwardedStats(anyString()))
+                    .thenThrow(new ServiceSpecificException(IOffload.ERROR_CODE_UNUSED));
+        }
+        final OffloadHardwareInterface.ForwardedStats stats =
+                mIOffloadHal.getForwardedStats(RMNET0);
+        verify(mIOffloadMock).getForwardedStats(eq(RMNET0));
+        assertNotNull(stats);
+        assertEquals(stats.rxBytes, returnStats.rxBytes);
+        assertEquals(stats.txBytes, returnStats.txBytes);
+    }
+
+    @Test
+    public void testGetForwardedStatsSuccess() throws Exception {
+        doTestGetForwardedStats(true);
+    }
+
+    @Test
+    public void testGetForwardedStatsFailure() throws Exception {
+        doTestGetForwardedStats(false);
+    }
+
+    private void doTestSetLocalPrefixes(boolean expectSuccess) throws Exception {
+        initAndValidateOffloadHal(true);
+        final ArrayList<String> localPrefixes = new ArrayList<>();
+        localPrefixes.add("127.0.0.0/8");
+        localPrefixes.add("fe80::/64");
+        final String[] localPrefixesArray =
+                localPrefixes.toArray(new String[localPrefixes.size()]);
+        if (expectSuccess) {
+            doNothing().when(mIOffloadMock).setLocalPrefixes(any());
+        } else {
+            doThrow(new IllegalArgumentException()).when(mIOffloadMock).setLocalPrefixes(any());
+        }
+        assertEquals(expectSuccess, mIOffloadHal.setLocalPrefixes(localPrefixes));
+        verify(mIOffloadMock).setLocalPrefixes(eq(localPrefixesArray));
+    }
+
+    @Test
+    public void testSetLocalPrefixesSuccess() throws Exception {
+        doTestSetLocalPrefixes(true);
+    }
+
+    @Test
+    public void testSetLocalPrefixesFailure() throws Exception {
+        doTestSetLocalPrefixes(false);
+    }
+
+    private void doTestSetDataLimit(boolean expectSuccess) throws Exception {
+        initAndValidateOffloadHal(true);
+        final long limit = 12345;
+        if (expectSuccess) {
+            doNothing().when(mIOffloadMock).setDataWarningAndLimit(anyString(), anyLong(),
+                    anyLong());
+        } else {
+            doThrow(new IllegalArgumentException())
+                    .when(mIOffloadMock).setDataWarningAndLimit(anyString(), anyLong(), anyLong());
+        }
+        assertEquals(expectSuccess, mIOffloadHal.setDataLimit(RMNET0, limit));
+        verify(mIOffloadMock).setDataWarningAndLimit(eq(RMNET0), eq(Long.MAX_VALUE), eq(limit));
+    }
+
+    @Test
+    public void testSetDataLimitSuccess() throws Exception {
+        doTestSetDataLimit(true);
+    }
+
+    @Test
+    public void testSetDataLimitFailure() throws Exception {
+        doTestSetDataLimit(false);
+    }
+
+    private void doTestSetDataWarningAndLimit(boolean expectSuccess) throws Exception {
+        initAndValidateOffloadHal(true);
+        final long warning = 12345;
+        final long limit = 67890;
+        if (expectSuccess) {
+            doNothing().when(mIOffloadMock).setDataWarningAndLimit(anyString(), anyLong(),
+                    anyLong());
+        } else {
+            doThrow(new IllegalArgumentException())
+                    .when(mIOffloadMock).setDataWarningAndLimit(anyString(), anyLong(), anyLong());
+        }
+        assertEquals(expectSuccess, mIOffloadHal.setDataWarningAndLimit(RMNET0, warning, limit));
+        verify(mIOffloadMock).setDataWarningAndLimit(eq(RMNET0), eq(warning), eq(limit));
+    }
+
+    @Test
+    public void testSetDataWarningAndLimitSuccess() throws Exception {
+        doTestSetDataWarningAndLimit(true);
+    }
+
+    @Test
+    public void testSetDataWarningAndLimitFailure() throws Exception {
+        doTestSetDataWarningAndLimit(false);
+    }
+
+    private void doTestSetUpstreamParameters(boolean expectSuccess) throws Exception {
+        initAndValidateOffloadHal(true);
+        final String v4addr = "192.168.10.1";
+        final String v4gateway = "192.168.10.255";
+        final ArrayList<String> v6gws = new ArrayList<>(0);
+        v6gws.add("2001:db8::1");
+        String[] v6gwsArray = v6gws.toArray(new String[v6gws.size()]);
+        if (expectSuccess) {
+            doNothing().when(mIOffloadMock).setUpstreamParameters(anyString(), anyString(),
+                    anyString(), any());
+        } else {
+            doThrow(new IllegalArgumentException()).when(mIOffloadMock).setUpstreamParameters(
+                    anyString(), anyString(), anyString(), any());
+        }
+        assertEquals(expectSuccess, mIOffloadHal.setUpstreamParameters(RMNET0, v4addr, v4gateway,
+                  v6gws));
+        verify(mIOffloadMock).setUpstreamParameters(eq(RMNET0), eq(v4addr), eq(v4gateway),
+                  eq(v6gwsArray));
+    }
+
+    @Test
+    public void testSetUpstreamParametersSuccess() throws Exception {
+        doTestSetUpstreamParameters(true);
+    }
+
+    @Test
+    public void testSetUpstreamParametersFailure() throws Exception {
+        doTestSetUpstreamParameters(false);
+    }
+
+    private void doTestAddDownstream(boolean expectSuccess) throws Exception {
+        initAndValidateOffloadHal(true);
+        final String ifName = "wlan1";
+        final String prefix = "192.168.43.0/24";
+        if (expectSuccess) {
+            doNothing().when(mIOffloadMock).addDownstream(anyString(), anyString());
+        } else {
+            doThrow(new IllegalStateException()).when(mIOffloadMock).addDownstream(anyString(),
+                    anyString());
+        }
+        assertEquals(expectSuccess, mIOffloadHal.addDownstream(ifName, prefix));
+        verify(mIOffloadMock).addDownstream(eq(ifName), eq(prefix));
+    }
+
+    @Test
+    public void testAddDownstreamSuccess() throws Exception {
+        doTestAddDownstream(true);
+    }
+
+    @Test
+    public void testAddDownstreamFailure() throws Exception {
+        doTestAddDownstream(false);
+    }
+
+    private void doTestRemoveDownstream(boolean expectSuccess) throws Exception {
+        initAndValidateOffloadHal(true);
+        final String ifName = "wlan1";
+        final String prefix = "192.168.43.0/24";
+        if (expectSuccess) {
+            doNothing().when(mIOffloadMock).removeDownstream(anyString(), anyString());
+        } else {
+            doThrow(new IllegalArgumentException()).when(mIOffloadMock).removeDownstream(
+                    anyString(), anyString());
+        }
+        assertEquals(expectSuccess, mIOffloadHal.removeDownstream(ifName, prefix));
+        verify(mIOffloadMock).removeDownstream(eq(ifName), eq(prefix));
+    }
+
+    @Test
+    public void testRemoveDownstreamSuccess() throws Exception {
+        doTestRemoveDownstream(true);
+    }
+
+    @Test
+    public void testRemoveDownstreamFailure() throws Exception {
+        doTestRemoveDownstream(false);
+    }
+
+    @Test
+    public void testTetheringOffloadCallback() throws Exception {
+        initAndValidateOffloadHal(true);
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STARTED);
+        mTestLooper.dispatchAll();
+        final InOrder inOrder = inOrder(mOffloadHalCallback);
+        inOrder.verify(mOffloadHalCallback).onStarted();
+        inOrder.verifyNoMoreInteractions();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onStoppedError();
+        inOrder.verifyNoMoreInteractions();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onStoppedUnsupported();
+        inOrder.verifyNoMoreInteractions();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onSupportAvailable();
+        inOrder.verifyNoMoreInteractions();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onStoppedLimitReached();
+        inOrder.verifyNoMoreInteractions();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_WARNING_REACHED);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onWarningReached();
+        inOrder.verifyNoMoreInteractions();
+
+        final NatTimeoutUpdate tcpParams = buildNatTimeoutUpdate(NetworkProtocol.TCP);
+        mTetheringOffloadCallback.updateTimeout(tcpParams);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onNatTimeoutUpdate(eq(OsConstants.IPPROTO_TCP),
+                eq(tcpParams.src.addr),
+                eq(tcpParams.src.port),
+                eq(tcpParams.dst.addr),
+                eq(tcpParams.dst.port));
+        inOrder.verifyNoMoreInteractions();
+
+        final NatTimeoutUpdate udpParams = buildNatTimeoutUpdate(NetworkProtocol.UDP);
+        mTetheringOffloadCallback.updateTimeout(udpParams);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onNatTimeoutUpdate(eq(OsConstants.IPPROTO_UDP),
+                eq(udpParams.src.addr),
+                eq(udpParams.src.port),
+                eq(udpParams.dst.addr),
+                eq(udpParams.dst.port));
+        inOrder.verifyNoMoreInteractions();
+    }
+
+    private NatTimeoutUpdate buildNatTimeoutUpdate(final int proto) {
+        final NatTimeoutUpdate params = new NatTimeoutUpdate();
+        params.proto = proto;
+        params.src = new IPv4AddrPortPair();
+        params.dst = new IPv4AddrPortPair();
+        params.src.addr = "192.168.43.200";
+        params.src.port = 100;
+        params.dst.addr = "172.50.46.169";
+        params.dst.port = 150;
+        return params;
+    }
+}
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHalHidlImplTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHalHidlImplTest.java
new file mode 100644
index 0000000..6fdab5a
--- /dev/null
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHalHidlImplTest.java
@@ -0,0 +1,359 @@
+/*
+ * Copyright (C) 2022 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.networkstack.tethering;
+
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_0;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_1;
+import static com.android.networkstack.tethering.util.TetheringUtils.uint16;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.hardware.tetheroffload.config.V1_0.IOffloadConfig;
+import android.hardware.tetheroffload.control.V1_0.IOffloadControl;
+import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate;
+import android.hardware.tetheroffload.control.V1_0.NetworkProtocol;
+import android.hardware.tetheroffload.control.V1_1.ITetheringOffloadCallback;
+import android.hardware.tetheroffload.control.V1_1.OffloadCallbackEvent;
+import android.os.Handler;
+import android.os.NativeHandle;
+import android.os.test.TestLooper;
+import android.system.OsConstants;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.net.module.util.SharedLog;
+import com.android.networkstack.tethering.OffloadHardwareInterface.ForwardedStats;
+import com.android.networkstack.tethering.OffloadHardwareInterface.OffloadHalCallback;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InOrder;
+import org.mockito.MockitoAnnotations;
+
+import java.io.FileDescriptor;
+import java.util.ArrayList;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public final class OffloadHalHidlImplTest {
+    private static final String RMNET0 = "test_rmnet_data0";
+
+    private final SharedLog mLog = new SharedLog("test");
+    private final TestLooper mTestLooper = new TestLooper();
+
+    private OffloadHalHidlImpl mIOffloadHal;
+    private IOffloadConfig mIOffloadConfigMock;
+    private IOffloadControl mIOffloadControlMock;
+    private ITetheringOffloadCallback mTetheringOffloadCallback;
+    private OffloadHalCallback mOffloadHalCallback;
+
+    private void createAndInitOffloadHal(int version) throws Exception {
+        final FileDescriptor fd1 = new FileDescriptor();
+        final FileDescriptor fd2 = new FileDescriptor();
+        final NativeHandle handle1 = new NativeHandle(fd1, true);
+        final NativeHandle handle2 = new NativeHandle(fd2, true);
+        mIOffloadConfigMock = mock(IOffloadConfig.class);
+        switch (version) {
+            case OFFLOAD_HAL_VERSION_HIDL_1_0:
+                mIOffloadControlMock = mock(IOffloadControl.class);
+                break;
+            case OFFLOAD_HAL_VERSION_HIDL_1_1:
+                mIOffloadControlMock = mock(
+                        android.hardware.tetheroffload.control.V1_1.IOffloadControl.class);
+                break;
+            default:
+                fail("Nonexistent HAL version");
+                return;
+        }
+        mIOffloadHal = new OffloadHalHidlImpl(version, mIOffloadConfigMock,
+                mIOffloadControlMock, new Handler(mTestLooper.getLooper()), mLog);
+        mIOffloadHal.initOffload(handle1, handle2, mOffloadHalCallback);
+
+        final ArgumentCaptor<NativeHandle> nativeHandleCaptor1 =
+                ArgumentCaptor.forClass(NativeHandle.class);
+        final ArgumentCaptor<NativeHandle> nativeHandleCaptor2 =
+                ArgumentCaptor.forClass(NativeHandle.class);
+        final ArgumentCaptor<ITetheringOffloadCallback> offloadCallbackCaptor =
+                ArgumentCaptor.forClass(ITetheringOffloadCallback.class);
+        verify(mIOffloadConfigMock).setHandles(nativeHandleCaptor1.capture(),
+                nativeHandleCaptor2.capture(), any());
+        verify(mIOffloadControlMock).initOffload(offloadCallbackCaptor.capture(), any());
+        assertEquals(nativeHandleCaptor1.getValue().getFileDescriptor().getInt$(),
+                handle1.getFileDescriptor().getInt$());
+        assertEquals(nativeHandleCaptor2.getValue().getFileDescriptor().getInt$(),
+                handle2.getFileDescriptor().getInt$());
+        mTetheringOffloadCallback = offloadCallbackCaptor.getValue();
+    }
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mOffloadHalCallback = spy(new OffloadHalCallback());
+    }
+
+    @Test
+    public void testGetForwardedStats() throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final long rxBytes = 12345;
+        final long txBytes = 67890;
+        doAnswer(invocation -> {
+            ((IOffloadControl.getForwardedStatsCallback) invocation.getArgument(1))
+                    .onValues(rxBytes, txBytes);
+            return null;
+        }).when(mIOffloadControlMock).getForwardedStats(eq(RMNET0), any());
+        final ForwardedStats stats = mIOffloadHal.getForwardedStats(RMNET0);
+        verify(mIOffloadControlMock).getForwardedStats(eq(RMNET0), any());
+        assertNotNull(stats);
+        assertEquals(rxBytes, stats.rxBytes);
+        assertEquals(txBytes, stats.txBytes);
+    }
+
+    private void doTestSetLocalPrefixes(boolean expectSuccess) throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final ArrayList<String> localPrefixes = new ArrayList<>();
+        localPrefixes.add("127.0.0.0/8");
+        localPrefixes.add("fe80::/64");
+        doAnswer(invocation -> {
+            ((IOffloadControl.setLocalPrefixesCallback) invocation.getArgument(1))
+                    .onValues(expectSuccess, "");
+            return null;
+        }).when(mIOffloadControlMock).setLocalPrefixes(eq(localPrefixes), any());
+        assertEquals(expectSuccess, mIOffloadHal.setLocalPrefixes(localPrefixes));
+        verify(mIOffloadControlMock).setLocalPrefixes(eq(localPrefixes), any());
+    }
+
+    @Test
+    public void testSetLocalPrefixesSuccess() throws Exception {
+        doTestSetLocalPrefixes(true);
+    }
+
+    @Test
+    public void testSetLocalPrefixesFailure() throws Exception {
+        doTestSetLocalPrefixes(false);
+    }
+
+    private void doTestSetDataLimit(boolean expectSuccess) throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final long limit = 12345;
+        doAnswer(invocation -> {
+            ((IOffloadControl.setDataLimitCallback) invocation.getArgument(2))
+                    .onValues(expectSuccess, "");
+            return null;
+        }).when(mIOffloadControlMock).setDataLimit(eq(RMNET0), eq(limit), any());
+        assertEquals(expectSuccess, mIOffloadHal.setDataLimit(RMNET0, limit));
+        verify(mIOffloadControlMock).setDataLimit(eq(RMNET0), eq(limit), any());
+    }
+
+    @Test
+    public void testSetDataLimitSuccess() throws Exception {
+        doTestSetDataLimit(true);
+    }
+
+    @Test
+    public void testSetDataLimitFailure() throws Exception {
+        doTestSetDataLimit(false);
+    }
+
+    private void doTestSetDataWarningAndLimit(boolean expectSuccess) throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_1);
+        final long warning = 12345;
+        final long limit = 67890;
+        doAnswer(invocation -> {
+            ((android.hardware.tetheroffload.control.V1_1.IOffloadControl
+                    .setDataWarningAndLimitCallback) invocation.getArgument(3))
+                    .onValues(expectSuccess, "");
+            return null;
+        }).when((android.hardware.tetheroffload.control.V1_1.IOffloadControl) mIOffloadControlMock)
+                .setDataWarningAndLimit(eq(RMNET0), eq(warning), eq(limit), any());
+        assertEquals(expectSuccess, mIOffloadHal.setDataWarningAndLimit(RMNET0, warning, limit));
+        verify((android.hardware.tetheroffload.control.V1_1.IOffloadControl) mIOffloadControlMock)
+                .setDataWarningAndLimit(eq(RMNET0), eq(warning), eq(limit), any());
+    }
+
+    @Test
+    public void testSetDataWarningAndLimitSuccess() throws Exception {
+        doTestSetDataWarningAndLimit(true);
+    }
+
+    @Test
+    public void testSetDataWarningAndLimitFailure() throws Exception {
+        // Verify that V1.0 control HAL would reject the function call with exception.
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final long warning = 12345;
+        final long limit = 67890;
+        assertThrows(UnsupportedOperationException.class,
+                () -> mIOffloadHal.setDataWarningAndLimit(RMNET0, warning, limit));
+
+        doTestSetDataWarningAndLimit(false);
+    }
+
+    private void doTestSetUpstreamParameters(boolean expectSuccess) throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final String v4addr = "192.168.10.1";
+        final String v4gateway = "192.168.10.255";
+        final ArrayList<String> v6gws = new ArrayList<>(0);
+        v6gws.add("2001:db8::1");
+        doAnswer(invocation -> {
+            ((IOffloadControl.setUpstreamParametersCallback) invocation.getArgument(4))
+                    .onValues(expectSuccess, "");
+            return null;
+        }).when(mIOffloadControlMock).setUpstreamParameters(eq(RMNET0), eq(v4addr), eq(v4gateway),
+                eq(v6gws), any());
+        assertEquals(expectSuccess, mIOffloadHal.setUpstreamParameters(RMNET0, v4addr, v4gateway,
+                v6gws));
+        verify(mIOffloadControlMock).setUpstreamParameters(eq(RMNET0), eq(v4addr), eq(v4gateway),
+                eq(v6gws), any());
+    }
+
+    @Test
+    public void testSetUpstreamParametersSuccess() throws Exception {
+        doTestSetUpstreamParameters(true);
+    }
+
+    @Test
+    public void testSetUpstreamParametersFailure() throws Exception {
+        doTestSetUpstreamParameters(false);
+    }
+
+    private void doTestAddDownstream(boolean expectSuccess) throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final String ifName = "wlan1";
+        final String prefix = "192.168.43.0/24";
+        doAnswer(invocation -> {
+            ((IOffloadControl.addDownstreamCallback) invocation.getArgument(2))
+                    .onValues(expectSuccess, "");
+            return null;
+        }).when(mIOffloadControlMock).addDownstream(eq(ifName), eq(prefix), any());
+        assertEquals(expectSuccess, mIOffloadHal.addDownstream(ifName, prefix));
+        verify(mIOffloadControlMock).addDownstream(eq(ifName), eq(prefix), any());
+    }
+
+    @Test
+    public void testAddDownstreamSuccess() throws Exception {
+        doTestAddDownstream(true);
+    }
+
+    @Test
+    public void testAddDownstreamFailure() throws Exception {
+        doTestAddDownstream(false);
+    }
+
+    private void doTestRemoveDownstream(boolean expectSuccess) throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final String ifName = "wlan1";
+        final String prefix = "192.168.43.0/24";
+        doAnswer(invocation -> {
+            ((IOffloadControl.removeDownstreamCallback) invocation.getArgument(2))
+                    .onValues(expectSuccess, "");
+            return null;
+        }).when(mIOffloadControlMock).removeDownstream(eq(ifName), eq(prefix), any());
+        assertEquals(expectSuccess, mIOffloadHal.removeDownstream(ifName, prefix));
+        verify(mIOffloadControlMock).removeDownstream(eq(ifName), eq(prefix), any());
+    }
+
+    @Test
+    public void testRemoveDownstreamSuccess() throws Exception {
+        doTestRemoveDownstream(true);
+    }
+
+    @Test
+    public void testRemoveDownstreamFailure() throws Exception {
+        doTestRemoveDownstream(false);
+    }
+
+    @Test
+    public void testTetheringOffloadCallback() throws Exception {
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_0);
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STARTED);
+        mTestLooper.dispatchAll();
+        verify(mOffloadHalCallback).onStarted();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR);
+        mTestLooper.dispatchAll();
+        verify(mOffloadHalCallback).onStoppedError();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED);
+        mTestLooper.dispatchAll();
+        verify(mOffloadHalCallback).onStoppedUnsupported();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE);
+        mTestLooper.dispatchAll();
+        verify(mOffloadHalCallback).onSupportAvailable();
+
+        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED);
+        mTestLooper.dispatchAll();
+        verify(mOffloadHalCallback).onStoppedLimitReached();
+
+        final NatTimeoutUpdate tcpParams = buildNatTimeoutUpdate(NetworkProtocol.TCP);
+        mTetheringOffloadCallback.updateTimeout(tcpParams);
+        mTestLooper.dispatchAll();
+        verify(mOffloadHalCallback).onNatTimeoutUpdate(eq(OsConstants.IPPROTO_TCP),
+                eq(tcpParams.src.addr),
+                eq(uint16(tcpParams.src.port)),
+                eq(tcpParams.dst.addr),
+                eq(uint16(tcpParams.dst.port)));
+
+        final NatTimeoutUpdate udpParams = buildNatTimeoutUpdate(NetworkProtocol.UDP);
+        mTetheringOffloadCallback.updateTimeout(udpParams);
+        mTestLooper.dispatchAll();
+        verify(mOffloadHalCallback).onNatTimeoutUpdate(eq(OsConstants.IPPROTO_UDP),
+                eq(udpParams.src.addr),
+                eq(uint16(udpParams.src.port)),
+                eq(udpParams.dst.addr),
+                eq(uint16(udpParams.dst.port)));
+        reset(mOffloadHalCallback);
+
+        createAndInitOffloadHal(OFFLOAD_HAL_VERSION_HIDL_1_1);
+
+        // Verify the interface will process the events that comes from V1.1 HAL.
+        mTetheringOffloadCallback.onEvent_1_1(OffloadCallbackEvent.OFFLOAD_STARTED);
+        mTestLooper.dispatchAll();
+        final InOrder inOrder = inOrder(mOffloadHalCallback);
+        inOrder.verify(mOffloadHalCallback).onStarted();
+        inOrder.verifyNoMoreInteractions();
+
+        mTetheringOffloadCallback.onEvent_1_1(OffloadCallbackEvent.OFFLOAD_WARNING_REACHED);
+        mTestLooper.dispatchAll();
+        inOrder.verify(mOffloadHalCallback).onWarningReached();
+        inOrder.verifyNoMoreInteractions();
+    }
+
+    private NatTimeoutUpdate buildNatTimeoutUpdate(final int proto) {
+        final NatTimeoutUpdate params = new NatTimeoutUpdate();
+        params.proto = proto;
+        params.src.addr = "192.168.43.200";
+        params.src.port = 100;
+        params.dst.addr = "172.50.46.169";
+        params.dst.port = 150;
+        return params;
+    }
+}
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHardwareInterfaceTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHardwareInterfaceTest.java
index 36b439b..b1f875b 100644
--- a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHardwareInterfaceTest.java
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadHardwareInterfaceTest.java
@@ -20,36 +20,29 @@
 import static android.system.OsConstants.AF_UNIX;
 import static android.system.OsConstants.SOCK_STREAM;
 
-import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_1_0;
-import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_1_1;
-import static com.android.networkstack.tethering.util.TetheringUtils.uint16;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_AIDL;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_0;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_1;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_NONE;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.inOrder;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.hardware.tetheroffload.config.V1_0.IOffloadConfig;
-import android.hardware.tetheroffload.control.V1_0.IOffloadControl;
-import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate;
-import android.hardware.tetheroffload.control.V1_0.NetworkProtocol;
-import android.hardware.tetheroffload.control.V1_1.ITetheringOffloadCallback;
-import android.hardware.tetheroffload.control.V1_1.OffloadCallbackEvent;
 import android.os.Handler;
 import android.os.NativeHandle;
 import android.os.test.TestLooper;
 import android.system.ErrnoException;
 import android.system.Os;
-import android.system.OsConstants;
-import android.util.Pair;
 
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
@@ -57,12 +50,13 @@
 import com.android.net.module.util.SharedLog;
 import com.android.net.module.util.netlink.StructNfGenMsg;
 import com.android.net.module.util.netlink.StructNlMsgHdr;
+import com.android.networkstack.tethering.OffloadHardwareInterface.ForwardedStats;
+import com.android.networkstack.tethering.OffloadHardwareInterface.OffloadHalCallback;
 
 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;
 
@@ -79,11 +73,9 @@
     private final TestLooper mTestLooper = new TestLooper();
 
     private OffloadHardwareInterface mOffloadHw;
-    private ITetheringOffloadCallback mTetheringOffloadCallback;
-    private OffloadHardwareInterface.ControlCallback mControlCallback;
+    private OffloadHalCallback mOffloadHalCallback;
 
-    @Mock private IOffloadConfig mIOffloadConfig;
-    private IOffloadControl mIOffloadControl;
+    @Mock private IOffloadHal mIOffload;
     @Mock private NativeHandle mNativeHandle;
 
     // Random values to test Netlink message.
@@ -91,32 +83,16 @@
     private static final short TEST_FLAGS = 263;
 
     class MyDependencies extends OffloadHardwareInterface.Dependencies {
-        private final int mMockControlVersion;
-        MyDependencies(SharedLog log, final int mockControlVersion) {
-            super(log);
-            mMockControlVersion = mockControlVersion;
+        private final int mMockOffloadHalVersion;
+        MyDependencies(Handler handler, SharedLog log, final int mockOffloadHalVersion) {
+            super(handler, log);
+            mMockOffloadHalVersion = mockOffloadHalVersion;
+            when(mIOffload.getVersion()).thenReturn(mMockOffloadHalVersion);
         }
 
         @Override
-        public IOffloadConfig getOffloadConfig() {
-            return mIOffloadConfig;
-        }
-
-        @Override
-        public Pair<IOffloadControl, Integer> getOffloadControl() {
-            switch (mMockControlVersion) {
-                case OFFLOAD_HAL_VERSION_1_0:
-                    mIOffloadControl = mock(IOffloadControl.class);
-                    break;
-                case OFFLOAD_HAL_VERSION_1_1:
-                    mIOffloadControl =
-                            mock(android.hardware.tetheroffload.control.V1_1.IOffloadControl.class);
-                    break;
-                default:
-                    throw new IllegalArgumentException("Invalid offload control version "
-                            + mMockControlVersion);
-            }
-            return new Pair<IOffloadControl, Integer>(mIOffloadControl, mMockControlVersion);
+        public IOffloadHal getOffload() {
+            return mMockOffloadHalVersion == OFFLOAD_HAL_VERSION_NONE ? null : mIOffload;
         }
 
         @Override
@@ -128,156 +104,140 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mControlCallback = spy(new OffloadHardwareInterface.ControlCallback());
+        mOffloadHalCallback = new OffloadHalCallback();
+        when(mIOffload.initOffload(any(NativeHandle.class), any(NativeHandle.class),
+                any(OffloadHalCallback.class))).thenReturn(true);
     }
 
-    private void startOffloadHardwareInterface(int controlVersion) throws Exception {
+    private void startOffloadHardwareInterface(int offloadHalVersion)
+            throws Exception {
         final SharedLog log = new SharedLog("test");
-        mOffloadHw = new OffloadHardwareInterface(new Handler(mTestLooper.getLooper()), log,
-                new MyDependencies(log, controlVersion));
-        mOffloadHw.initOffloadConfig();
-        mOffloadHw.initOffloadControl(mControlCallback);
-        final ArgumentCaptor<ITetheringOffloadCallback> mOffloadCallbackCaptor =
-                ArgumentCaptor.forClass(ITetheringOffloadCallback.class);
-        verify(mIOffloadControl).initOffload(mOffloadCallbackCaptor.capture(), any());
-        mTetheringOffloadCallback = mOffloadCallbackCaptor.getValue();
+        final Handler handler = new Handler(mTestLooper.getLooper());
+        final int num = offloadHalVersion != OFFLOAD_HAL_VERSION_NONE ? 1 : 0;
+        mOffloadHw = new OffloadHardwareInterface(handler, log,
+                new MyDependencies(handler, log, offloadHalVersion));
+        assertEquals(offloadHalVersion, mOffloadHw.initOffload(mOffloadHalCallback));
+        verify(mIOffload, times(num)).initOffload(any(NativeHandle.class), any(NativeHandle.class),
+                eq(mOffloadHalCallback));
+    }
+
+    @Test
+    public void testInitFailureWithNoHal() throws Exception {
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_NONE);
+    }
+
+    @Test
+    public void testInitSuccessWithAidl() throws Exception {
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_AIDL);
+    }
+
+    @Test
+    public void testInitSuccessWithHidl_1_0() throws Exception {
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
+    }
+
+    @Test
+    public void testInitSuccessWithHidl_1_1() throws Exception {
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_1);
     }
 
     @Test
     public void testGetForwardedStats() throws Exception {
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
-        final OffloadHardwareInterface.ForwardedStats stats = mOffloadHw.getForwardedStats(RMNET0);
-        verify(mIOffloadControl).getForwardedStats(eq(RMNET0), any());
-        assertNotNull(stats);
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        ForwardedStats stats = new ForwardedStats(12345, 56780);
+        when(mIOffload.getForwardedStats(anyString())).thenReturn(stats);
+        assertEquals(mOffloadHw.getForwardedStats(RMNET0), stats);
+        verify(mIOffload).getForwardedStats(eq(RMNET0));
     }
 
     @Test
     public void testSetLocalPrefixes() throws Exception {
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
         final ArrayList<String> localPrefixes = new ArrayList<>();
         localPrefixes.add("127.0.0.0/8");
         localPrefixes.add("fe80::/64");
-        mOffloadHw.setLocalPrefixes(localPrefixes);
-        verify(mIOffloadControl).setLocalPrefixes(eq(localPrefixes), any());
+        when(mIOffload.setLocalPrefixes(any())).thenReturn(true);
+        assertTrue(mOffloadHw.setLocalPrefixes(localPrefixes));
+        verify(mIOffload).setLocalPrefixes(eq(localPrefixes));
+        when(mIOffload.setLocalPrefixes(any())).thenReturn(false);
+        assertFalse(mOffloadHw.setLocalPrefixes(localPrefixes));
     }
 
     @Test
     public void testSetDataLimit() throws Exception {
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
         final long limit = 12345;
-        mOffloadHw.setDataLimit(RMNET0, limit);
-        verify(mIOffloadControl).setDataLimit(eq(RMNET0), eq(limit), any());
+        when(mIOffload.setDataLimit(anyString(), anyLong())).thenReturn(true);
+        assertTrue(mOffloadHw.setDataLimit(RMNET0, limit));
+        verify(mIOffload).setDataLimit(eq(RMNET0), eq(limit));
+        when(mIOffload.setDataLimit(anyString(), anyLong())).thenReturn(false);
+        assertFalse(mOffloadHw.setDataLimit(RMNET0, limit));
+    }
+
+    @Test
+    public void testSetDataWarningAndLimitFailureWithHidl_1_0() throws Exception {
+        // Verify V1.0 control HAL would reject the function call with exception.
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
+        final long warning = 12345;
+        final long limit = 67890;
+        assertThrows(UnsupportedOperationException.class,
+                () -> mOffloadHw.setDataWarningAndLimit(RMNET0, warning, limit));
     }
 
     @Test
     public void testSetDataWarningAndLimit() throws Exception {
-        // Verify V1.0 control HAL would reject the function call with exception.
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
+        // Verify V1.1 control HAL could receive this function call.
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_1);
         final long warning = 12345;
         final long limit = 67890;
-        assertThrows(IllegalArgumentException.class,
-                () -> mOffloadHw.setDataWarningAndLimit(RMNET0, warning, limit));
-        reset(mIOffloadControl);
-
-        // Verify V1.1 control HAL could receive this function call.
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_1);
-        mOffloadHw.setDataWarningAndLimit(RMNET0, warning, limit);
-        verify((android.hardware.tetheroffload.control.V1_1.IOffloadControl) mIOffloadControl)
-                .setDataWarningAndLimit(eq(RMNET0), eq(warning), eq(limit), any());
+        when(mIOffload.setDataWarningAndLimit(anyString(), anyLong(), anyLong())).thenReturn(true);
+        assertTrue(mOffloadHw.setDataWarningAndLimit(RMNET0, warning, limit));
+        verify(mIOffload).setDataWarningAndLimit(eq(RMNET0), eq(warning), eq(limit));
+        when(mIOffload.setDataWarningAndLimit(anyString(), anyLong(), anyLong())).thenReturn(false);
+        assertFalse(mOffloadHw.setDataWarningAndLimit(RMNET0, warning, limit));
     }
 
     @Test
     public void testSetUpstreamParameters() throws Exception {
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
         final String v4addr = "192.168.10.1";
         final String v4gateway = "192.168.10.255";
         final ArrayList<String> v6gws = new ArrayList<>(0);
         v6gws.add("2001:db8::1");
-        mOffloadHw.setUpstreamParameters(RMNET0, v4addr, v4gateway, v6gws);
-        verify(mIOffloadControl).setUpstreamParameters(eq(RMNET0), eq(v4addr), eq(v4gateway),
-                eq(v6gws), any());
+        when(mIOffload.setUpstreamParameters(anyString(), anyString(), anyString(), any()))
+                .thenReturn(true);
+        assertTrue(mOffloadHw.setUpstreamParameters(RMNET0, v4addr, v4gateway, v6gws));
+        verify(mIOffload).setUpstreamParameters(eq(RMNET0), eq(v4addr), eq(v4gateway), eq(v6gws));
 
         final ArgumentCaptor<ArrayList<String>> mArrayListCaptor =
                 ArgumentCaptor.forClass(ArrayList.class);
-        mOffloadHw.setUpstreamParameters(null, null, null, null);
-        verify(mIOffloadControl).setUpstreamParameters(eq(""), eq(""), eq(""),
-                mArrayListCaptor.capture(), any());
+        when(mIOffload.setUpstreamParameters(anyString(), anyString(), anyString(), any()))
+                .thenReturn(false);
+        assertFalse(mOffloadHw.setUpstreamParameters(null, null, null, null));
+        verify(mIOffload).setUpstreamParameters(eq(""), eq(""), eq(""), mArrayListCaptor.capture());
         assertEquals(mArrayListCaptor.getValue().size(), 0);
     }
 
     @Test
-    public void testUpdateDownstreamPrefix() throws Exception {
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
+    public void testUpdateDownstream() throws Exception {
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
         final String ifName = "wlan1";
         final String prefix = "192.168.43.0/24";
-        mOffloadHw.addDownstreamPrefix(ifName, prefix);
-        verify(mIOffloadControl).addDownstream(eq(ifName), eq(prefix), any());
-
-        mOffloadHw.removeDownstreamPrefix(ifName, prefix);
-        verify(mIOffloadControl).removeDownstream(eq(ifName), eq(prefix), any());
-    }
-
-    @Test
-    public void testTetheringOffloadCallback() throws Exception {
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
-
-        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STARTED);
-        mTestLooper.dispatchAll();
-        verify(mControlCallback).onStarted();
-
-        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR);
-        mTestLooper.dispatchAll();
-        verify(mControlCallback).onStoppedError();
-
-        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED);
-        mTestLooper.dispatchAll();
-        verify(mControlCallback).onStoppedUnsupported();
-
-        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE);
-        mTestLooper.dispatchAll();
-        verify(mControlCallback).onSupportAvailable();
-
-        mTetheringOffloadCallback.onEvent(OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED);
-        mTestLooper.dispatchAll();
-        verify(mControlCallback).onStoppedLimitReached();
-
-        final NatTimeoutUpdate tcpParams = buildNatTimeoutUpdate(NetworkProtocol.TCP);
-        mTetheringOffloadCallback.updateTimeout(tcpParams);
-        mTestLooper.dispatchAll();
-        verify(mControlCallback).onNatTimeoutUpdate(eq(OsConstants.IPPROTO_TCP),
-                eq(tcpParams.src.addr),
-                eq(uint16(tcpParams.src.port)),
-                eq(tcpParams.dst.addr),
-                eq(uint16(tcpParams.dst.port)));
-
-        final NatTimeoutUpdate udpParams = buildNatTimeoutUpdate(NetworkProtocol.UDP);
-        mTetheringOffloadCallback.updateTimeout(udpParams);
-        mTestLooper.dispatchAll();
-        verify(mControlCallback).onNatTimeoutUpdate(eq(OsConstants.IPPROTO_UDP),
-                eq(udpParams.src.addr),
-                eq(uint16(udpParams.src.port)),
-                eq(udpParams.dst.addr),
-                eq(uint16(udpParams.dst.port)));
-        reset(mControlCallback);
-
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_1);
-
-        // Verify the interface will process the events that comes from V1.1 HAL.
-        mTetheringOffloadCallback.onEvent_1_1(OffloadCallbackEvent.OFFLOAD_STARTED);
-        mTestLooper.dispatchAll();
-        final InOrder inOrder = inOrder(mControlCallback);
-        inOrder.verify(mControlCallback).onStarted();
-        inOrder.verifyNoMoreInteractions();
-
-        mTetheringOffloadCallback.onEvent_1_1(OffloadCallbackEvent.OFFLOAD_WARNING_REACHED);
-        mTestLooper.dispatchAll();
-        inOrder.verify(mControlCallback).onWarningReached();
-        inOrder.verifyNoMoreInteractions();
+        when(mIOffload.addDownstream(anyString(), anyString())).thenReturn(true);
+        assertTrue(mOffloadHw.addDownstream(ifName, prefix));
+        verify(mIOffload).addDownstream(eq(ifName), eq(prefix));
+        when(mIOffload.addDownstream(anyString(), anyString())).thenReturn(false);
+        assertFalse(mOffloadHw.addDownstream(ifName, prefix));
+        when(mIOffload.removeDownstream(anyString(), anyString())).thenReturn(true);
+        assertTrue(mOffloadHw.removeDownstream(ifName, prefix));
+        verify(mIOffload).removeDownstream(eq(ifName), eq(prefix));
+        when(mIOffload.removeDownstream(anyString(), anyString())).thenReturn(false);
+        assertFalse(mOffloadHw.removeDownstream(ifName, prefix));
     }
 
     @Test
     public void testSendIpv4NfGenMsg() throws Exception {
-        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_1_0);
+        startOffloadHardwareInterface(OFFLOAD_HAL_VERSION_HIDL_1_0);
         FileDescriptor writeSocket = new FileDescriptor();
         FileDescriptor readSocket = new FileDescriptor();
         try {
@@ -308,14 +268,4 @@
         assertEquals(0 /* error */, buffer.getShort());  // res_id
         assertEquals(expectedLen, buffer.position());
     }
-
-    private NatTimeoutUpdate buildNatTimeoutUpdate(final int proto) {
-        final NatTimeoutUpdate params = new NatTimeoutUpdate();
-        params.proto = proto;
-        params.src.addr = "192.168.43.200";
-        params.src.port = 100;
-        params.dst.addr = "172.50.46.169";
-        params.dst.port = 150;
-        return params;
-    }
 }
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringNotificationUpdaterTest.kt b/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringNotificationUpdaterTest.kt
index 75c819b..ac3d713 100644
--- a/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringNotificationUpdaterTest.kt
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringNotificationUpdaterTest.kt
@@ -156,6 +156,7 @@
     @After
     fun tearDown() {
         fakeTetheringThread.quitSafely()
+        fakeTetheringThread.join()
     }
 
     private fun verifyActivityPendingIntent(intent: Intent, flags: Int) {
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringTest.java
index 79590b7..c15b85e 100644
--- a/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringTest.java
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/TetheringTest.java
@@ -68,7 +68,7 @@
 import static com.android.modules.utils.build.SdkLevel.isAtLeastT;
 import static com.android.net.module.util.Inet4AddressUtils.inet4AddressToIntHTH;
 import static com.android.net.module.util.Inet4AddressUtils.intToInet4AddressHTH;
-import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_1_0;
+import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_HIDL_1_0;
 import static com.android.networkstack.tethering.OffloadHardwareInterface.OFFLOAD_HAL_VERSION_NONE;
 import static com.android.networkstack.tethering.TestConnectivityManager.BROADCAST_FIRST;
 import static com.android.networkstack.tethering.TestConnectivityManager.CALLBACKS_FIRST;
@@ -649,8 +649,7 @@
         mInterfaceConfiguration.flags = new String[0];
         when(mRouterAdvertisementDaemon.start())
                 .thenReturn(true);
-        initOffloadConfiguration(true /* offloadConfig */, OFFLOAD_HAL_VERSION_1_0,
-                0 /* defaultDisabled */);
+        initOffloadConfiguration(OFFLOAD_HAL_VERSION_HIDL_1_0, 0 /* defaultDisabled */);
         when(mOffloadHardwareInterface.getForwardedStats(any())).thenReturn(mForwardedStats);
 
         mServiceContext = new TestContext(mContext);
@@ -2001,6 +2000,7 @@
         verify(mWifiManager).updateInterfaceIpState(
                 TEST_WLAN_IFNAME, WifiManager.IFACE_IP_MODE_CONFIGURATION_ERROR);
 
+        verify(mTetheringMetrics, times(0)).maybeUpdateUpstreamType(any());
         verify(mTetheringMetrics, times(2)).updateErrorCode(eq(TETHERING_WIFI),
                 eq(TETHER_ERROR_INTERNAL_ERROR));
         verify(mTetheringMetrics, times(2)).sendReport(eq(TETHERING_WIFI));
@@ -2345,25 +2345,15 @@
         mLooper.dispatchAll();
         callback.expectOffloadStatusChanged(TETHER_HARDWARE_OFFLOAD_STOPPED);
 
-        // 1. Offload fail if no OffloadConfig.
-        initOffloadConfiguration(false /* offloadConfig */, OFFLOAD_HAL_VERSION_1_0,
-                0 /* defaultDisabled */);
+        // 1. Offload fail if no IOffloadHal.
+        initOffloadConfiguration(OFFLOAD_HAL_VERSION_NONE, 0 /* defaultDisabled */);
         runUsbTethering(upstreamState);
         callback.expectOffloadStatusChanged(TETHER_HARDWARE_OFFLOAD_FAILED);
         runStopUSBTethering();
         callback.expectOffloadStatusChanged(TETHER_HARDWARE_OFFLOAD_STOPPED);
         reset(mUsbManager, mIPv6TetheringCoordinator);
-        // 2. Offload fail if no OffloadControl.
-        initOffloadConfiguration(true /* offloadConfig */, OFFLOAD_HAL_VERSION_NONE,
-                0 /* defaultDisabled */);
-        runUsbTethering(upstreamState);
-        callback.expectOffloadStatusChanged(TETHER_HARDWARE_OFFLOAD_FAILED);
-        runStopUSBTethering();
-        callback.expectOffloadStatusChanged(TETHER_HARDWARE_OFFLOAD_STOPPED);
-        reset(mUsbManager, mIPv6TetheringCoordinator);
-        // 3. Offload fail if disabled by settings.
-        initOffloadConfiguration(true /* offloadConfig */, OFFLOAD_HAL_VERSION_1_0,
-                1 /* defaultDisabled */);
+        // 2. Offload fail if disabled by settings.
+        initOffloadConfiguration(OFFLOAD_HAL_VERSION_HIDL_1_0, 1 /* defaultDisabled */);
         runUsbTethering(upstreamState);
         callback.expectOffloadStatusChanged(TETHER_HARDWARE_OFFLOAD_FAILED);
         runStopUSBTethering();
@@ -2378,11 +2368,10 @@
         verify(mUsbManager).setCurrentFunctions(UsbManager.FUNCTION_NONE);
     }
 
-    private void initOffloadConfiguration(final boolean offloadConfig,
-            @OffloadHardwareInterface.OffloadHalVersion final int offloadControlVersion,
+    private void initOffloadConfiguration(
+            @OffloadHardwareInterface.OffloadHalVersion final int offloadHalVersion,
             final int defaultDisabled) {
-        when(mOffloadHardwareInterface.initOffloadConfig()).thenReturn(offloadConfig);
-        when(mOffloadHardwareInterface.initOffloadControl(any())).thenReturn(offloadControlVersion);
+        when(mOffloadHardwareInterface.initOffload(any())).thenReturn(offloadHalVersion);
         when(mOffloadHardwareInterface.getDefaultTetherOffloadDisabled()).thenReturn(
                 defaultDisabled);
     }
@@ -3377,6 +3366,7 @@
         verify(mDhcpServer, timeout(DHCPSERVER_START_TIMEOUT_MS).times(1)).startWithCallbacks(
                 any(), any());
         verify(mTetheringMetrics).createBuilder(eq(TETHERING_NCM), anyString());
+        verify(mTetheringMetrics, times(1)).maybeUpdateUpstreamType(any());
 
         // Change the USB tethering function to NCM. Because the USB tethering function was set to
         // RNDIS (the default), tethering is stopped.
@@ -3393,6 +3383,7 @@
         mLooper.dispatchAll();
         ncmResult.assertHasResult();
         verify(mTetheringMetrics, times(2)).createBuilder(eq(TETHERING_NCM), anyString());
+        verify(mTetheringMetrics, times(1)).maybeUpdateUpstreamType(any());
         verify(mTetheringMetrics).updateErrorCode(eq(TETHERING_NCM),
                 eq(TETHER_ERROR_SERVICE_UNAVAIL));
         verify(mTetheringMetrics, times(2)).sendReport(eq(TETHERING_NCM));
diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/metrics/TetheringMetricsTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/metrics/TetheringMetricsTest.java
index 7fdde97..aa2d16c 100644
--- a/Tethering/tests/unit/src/com/android/networkstack/tethering/metrics/TetheringMetricsTest.java
+++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/metrics/TetheringMetricsTest.java
@@ -16,6 +16,13 @@
 
 package com.android.networkstack.tethering.metrics;
 
+import static android.net.NetworkCapabilities.TRANSPORT_BLUETOOTH;
+import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
+import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET;
+import static android.net.NetworkCapabilities.TRANSPORT_LOWPAN;
+import static android.net.NetworkCapabilities.TRANSPORT_VPN;
+import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
+import static android.net.NetworkCapabilities.TRANSPORT_WIFI_AWARE;
 import static android.net.TetheringManager.TETHERING_BLUETOOTH;
 import static android.net.TetheringManager.TETHERING_ETHERNET;
 import static android.net.TetheringManager.TETHERING_NCM;
@@ -44,15 +51,17 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.net.NetworkCapabilities;
 import android.stats.connectivity.DownstreamType;
 import android.stats.connectivity.ErrorCode;
 import android.stats.connectivity.UpstreamType;
 import android.stats.connectivity.UserType;
-import android.util.Pair;
 
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.networkstack.tethering.UpstreamNetworkState;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -65,138 +74,317 @@
     private static final String SETTINGS_PKG = "com.android.settings";
     private static final String SYSTEMUI_PKG = "com.android.systemui";
     private static final String GMS_PKG = "com.google.android.gms";
-    private TetheringMetrics mTetheringMetrics;
+    private static final long TEST_START_TIME = 1670395936033L;
+    private static final long SECOND_IN_MILLIS = 1_000L;
 
+    private TetheringMetrics mTetheringMetrics;
     private final NetworkTetheringReported.Builder mStatsBuilder =
             NetworkTetheringReported.newBuilder();
 
+    private long mElapsedRealtime;
+
     private class MockTetheringMetrics extends TetheringMetrics {
         @Override
-        public void write(final NetworkTetheringReported reported) { }
+        public void write(final NetworkTetheringReported reported) {}
+        @Override
+        public long timeNow() {
+            return currentTimeMillis();
+        }
+    }
+
+    private long currentTimeMillis() {
+        return TEST_START_TIME + mElapsedRealtime;
+    }
+
+    private void incrementCurrentTime(final long duration) {
+        mElapsedRealtime += duration;
+        mTetheringMetrics.timeNow();
+    }
+
+    private long getElapsedRealtime() {
+        return mElapsedRealtime;
+    }
+
+    private void clearElapsedRealtime() {
+        mElapsedRealtime = 0;
     }
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         mTetheringMetrics = spy(new MockTetheringMetrics());
+        mElapsedRealtime = 0L;
     }
 
-    private void verifyReport(DownstreamType downstream, ErrorCode error, UserType user)
+    private void verifyReport(final DownstreamType downstream, final ErrorCode error,
+            final UserType user, final UpstreamEvents.Builder upstreamEvents, final long duration)
             throws Exception {
         final NetworkTetheringReported expectedReport =
                 mStatsBuilder.setDownstreamType(downstream)
                 .setUserType(user)
                 .setUpstreamType(UpstreamType.UT_UNKNOWN)
                 .setErrorCode(error)
-                .setUpstreamEvents(UpstreamEvents.newBuilder())
-                .setDurationMillis(0)
+                .setUpstreamEvents(upstreamEvents)
+                .setDurationMillis(duration)
                 .build();
         verify(mTetheringMetrics).write(expectedReport);
     }
 
-    private void updateErrorAndSendReport(int downstream, int error) {
+    private void updateErrorAndSendReport(final int downstream, final int error) {
         mTetheringMetrics.updateErrorCode(downstream, error);
         mTetheringMetrics.sendReport(downstream);
     }
 
-    private void runDownstreamTypesTest(final Pair<Integer, DownstreamType>... testPairs)
-            throws Exception {
-        for (Pair<Integer, DownstreamType> testPair : testPairs) {
-            final int type = testPair.first;
-            final DownstreamType expectedResult = testPair.second;
-
-            mTetheringMetrics.createBuilder(type, TEST_CALLER_PKG);
-            updateErrorAndSendReport(type, TETHER_ERROR_NO_ERROR);
-            verifyReport(expectedResult, ErrorCode.EC_NO_ERROR, UserType.USER_UNKNOWN);
-            reset(mTetheringMetrics);
+    private static NetworkCapabilities buildUpstreamCapabilities(final int[] transports) {
+        final NetworkCapabilities nc = new NetworkCapabilities();
+        for (int type: transports) {
+            nc.addTransportType(type);
         }
+        return nc;
+    }
+
+    private static UpstreamNetworkState buildUpstreamState(final int... transports) {
+        return new UpstreamNetworkState(
+                null,
+                buildUpstreamCapabilities(transports),
+                null);
+    }
+
+    private void addUpstreamEvent(UpstreamEvents.Builder upstreamEvents,
+            final UpstreamType expectedResult, final long duration) {
+        UpstreamEvent.Builder upstreamEvent = UpstreamEvent.newBuilder()
+                .setUpstreamType(expectedResult)
+                .setDurationMillis(duration);
+        upstreamEvents.addUpstreamEvent(upstreamEvent);
+    }
+
+    private void runDownstreamTypesTest(final int type, final DownstreamType expectedResult)
+            throws Exception {
+        mTetheringMetrics.createBuilder(type, TEST_CALLER_PKG);
+        final long duration = 2 * SECOND_IN_MILLIS;
+        incrementCurrentTime(duration);
+        UpstreamEvents.Builder upstreamEvents = UpstreamEvents.newBuilder();
+        // Set UpstreamType as NO_NETWORK because the upstream type has not been changed.
+        addUpstreamEvent(upstreamEvents, UpstreamType.UT_NO_NETWORK, duration);
+        updateErrorAndSendReport(type, TETHER_ERROR_NO_ERROR);
+
+        verifyReport(expectedResult, ErrorCode.EC_NO_ERROR, UserType.USER_UNKNOWN,
+                upstreamEvents, getElapsedRealtime());
+        reset(mTetheringMetrics);
+        clearElapsedRealtime();
+        mTetheringMetrics.cleanup();
     }
 
     @Test
     public void testDownstreamTypes() throws Exception {
-        runDownstreamTypesTest(new Pair<>(TETHERING_WIFI, DownstreamType.DS_TETHERING_WIFI),
-                new Pair<>(TETHERING_WIFI_P2P, DownstreamType.DS_TETHERING_WIFI_P2P),
-                new Pair<>(TETHERING_BLUETOOTH, DownstreamType.DS_TETHERING_BLUETOOTH),
-                new Pair<>(TETHERING_USB, DownstreamType.DS_TETHERING_USB),
-                new Pair<>(TETHERING_NCM, DownstreamType.DS_TETHERING_NCM),
-                new Pair<>(TETHERING_ETHERNET, DownstreamType.DS_TETHERING_ETHERNET));
+        runDownstreamTypesTest(TETHERING_WIFI, DownstreamType.DS_TETHERING_WIFI);
+        runDownstreamTypesTest(TETHERING_WIFI_P2P, DownstreamType.DS_TETHERING_WIFI_P2P);
+        runDownstreamTypesTest(TETHERING_BLUETOOTH, DownstreamType.DS_TETHERING_BLUETOOTH);
+        runDownstreamTypesTest(TETHERING_USB, DownstreamType.DS_TETHERING_USB);
+        runDownstreamTypesTest(TETHERING_NCM, DownstreamType.DS_TETHERING_NCM);
+        runDownstreamTypesTest(TETHERING_ETHERNET, DownstreamType.DS_TETHERING_ETHERNET);
     }
 
-    private void runErrorCodesTest(final Pair<Integer, ErrorCode>... testPairs)
+    private void runErrorCodesTest(final int errorCode, final ErrorCode expectedResult)
             throws Exception {
-        for (Pair<Integer, ErrorCode> testPair : testPairs) {
-            final int errorCode = testPair.first;
-            final ErrorCode expectedResult = testPair.second;
+        mTetheringMetrics.createBuilder(TETHERING_WIFI, TEST_CALLER_PKG);
+        mTetheringMetrics.maybeUpdateUpstreamType(buildUpstreamState(TRANSPORT_WIFI));
+        final long duration = 2 * SECOND_IN_MILLIS;
+        incrementCurrentTime(duration);
+        updateErrorAndSendReport(TETHERING_WIFI, errorCode);
 
-            mTetheringMetrics.createBuilder(TETHERING_WIFI, TEST_CALLER_PKG);
-            updateErrorAndSendReport(TETHERING_WIFI, errorCode);
-            verifyReport(DownstreamType.DS_TETHERING_WIFI, expectedResult, UserType.USER_UNKNOWN);
-            reset(mTetheringMetrics);
-        }
+        UpstreamEvents.Builder upstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(upstreamEvents, UpstreamType.UT_WIFI, duration);
+        verifyReport(DownstreamType.DS_TETHERING_WIFI, expectedResult, UserType.USER_UNKNOWN,
+                    upstreamEvents, getElapsedRealtime());
+        reset(mTetheringMetrics);
+        clearElapsedRealtime();
+        mTetheringMetrics.cleanup();
     }
 
     @Test
     public void testErrorCodes() throws Exception {
-        runErrorCodesTest(new Pair<>(TETHER_ERROR_NO_ERROR, ErrorCode.EC_NO_ERROR),
-                new Pair<>(TETHER_ERROR_UNKNOWN_IFACE, ErrorCode.EC_UNKNOWN_IFACE),
-                new Pair<>(TETHER_ERROR_SERVICE_UNAVAIL, ErrorCode.EC_SERVICE_UNAVAIL),
-                new Pair<>(TETHER_ERROR_UNSUPPORTED, ErrorCode.EC_UNSUPPORTED),
-                new Pair<>(TETHER_ERROR_UNAVAIL_IFACE, ErrorCode.EC_UNAVAIL_IFACE),
-                new Pair<>(TETHER_ERROR_INTERNAL_ERROR, ErrorCode.EC_INTERNAL_ERROR),
-                new Pair<>(TETHER_ERROR_TETHER_IFACE_ERROR, ErrorCode.EC_TETHER_IFACE_ERROR),
-                new Pair<>(TETHER_ERROR_UNTETHER_IFACE_ERROR, ErrorCode.EC_UNTETHER_IFACE_ERROR),
-                new Pair<>(TETHER_ERROR_ENABLE_FORWARDING_ERROR,
-                ErrorCode.EC_ENABLE_FORWARDING_ERROR),
-                new Pair<>(TETHER_ERROR_DISABLE_FORWARDING_ERROR,
-                ErrorCode.EC_DISABLE_FORWARDING_ERROR),
-                new Pair<>(TETHER_ERROR_IFACE_CFG_ERROR, ErrorCode.EC_IFACE_CFG_ERROR),
-                new Pair<>(TETHER_ERROR_PROVISIONING_FAILED, ErrorCode.EC_PROVISIONING_FAILED),
-                new Pair<>(TETHER_ERROR_DHCPSERVER_ERROR, ErrorCode.EC_DHCPSERVER_ERROR),
-                new Pair<>(TETHER_ERROR_ENTITLEMENT_UNKNOWN, ErrorCode.EC_ENTITLEMENT_UNKNOWN),
-                new Pair<>(TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION,
-                ErrorCode.EC_NO_CHANGE_TETHERING_PERMISSION),
-                new Pair<>(TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION,
-                ErrorCode.EC_NO_ACCESS_TETHERING_PERMISSION),
-                new Pair<>(TETHER_ERROR_UNKNOWN_TYPE, ErrorCode.EC_UNKNOWN_TYPE));
+        runErrorCodesTest(TETHER_ERROR_NO_ERROR, ErrorCode.EC_NO_ERROR);
+        runErrorCodesTest(TETHER_ERROR_UNKNOWN_IFACE, ErrorCode.EC_UNKNOWN_IFACE);
+        runErrorCodesTest(TETHER_ERROR_SERVICE_UNAVAIL, ErrorCode.EC_SERVICE_UNAVAIL);
+        runErrorCodesTest(TETHER_ERROR_UNSUPPORTED, ErrorCode.EC_UNSUPPORTED);
+        runErrorCodesTest(TETHER_ERROR_UNAVAIL_IFACE, ErrorCode.EC_UNAVAIL_IFACE);
+        runErrorCodesTest(TETHER_ERROR_INTERNAL_ERROR, ErrorCode.EC_INTERNAL_ERROR);
+        runErrorCodesTest(TETHER_ERROR_TETHER_IFACE_ERROR, ErrorCode.EC_TETHER_IFACE_ERROR);
+        runErrorCodesTest(TETHER_ERROR_UNTETHER_IFACE_ERROR, ErrorCode.EC_UNTETHER_IFACE_ERROR);
+        runErrorCodesTest(TETHER_ERROR_ENABLE_FORWARDING_ERROR,
+                ErrorCode.EC_ENABLE_FORWARDING_ERROR);
+        runErrorCodesTest(TETHER_ERROR_DISABLE_FORWARDING_ERROR,
+                ErrorCode.EC_DISABLE_FORWARDING_ERROR);
+        runErrorCodesTest(TETHER_ERROR_IFACE_CFG_ERROR, ErrorCode.EC_IFACE_CFG_ERROR);
+        runErrorCodesTest(TETHER_ERROR_PROVISIONING_FAILED, ErrorCode.EC_PROVISIONING_FAILED);
+        runErrorCodesTest(TETHER_ERROR_DHCPSERVER_ERROR, ErrorCode.EC_DHCPSERVER_ERROR);
+        runErrorCodesTest(TETHER_ERROR_ENTITLEMENT_UNKNOWN, ErrorCode.EC_ENTITLEMENT_UNKNOWN);
+        runErrorCodesTest(TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION,
+                ErrorCode.EC_NO_CHANGE_TETHERING_PERMISSION);
+        runErrorCodesTest(TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION,
+                ErrorCode.EC_NO_ACCESS_TETHERING_PERMISSION);
+        runErrorCodesTest(TETHER_ERROR_UNKNOWN_TYPE, ErrorCode.EC_UNKNOWN_TYPE);
     }
 
-    private void runUserTypesTest(final Pair<String, UserType>... testPairs)
+    private void runUserTypesTest(final String callerPkg, final UserType expectedResult)
             throws Exception {
-        for (Pair<String, UserType> testPair : testPairs) {
-            final String callerPkg = testPair.first;
-            final UserType expectedResult = testPair.second;
+        mTetheringMetrics.createBuilder(TETHERING_WIFI, callerPkg);
+        final long duration = 1 * SECOND_IN_MILLIS;
+        incrementCurrentTime(duration);
+        updateErrorAndSendReport(TETHERING_WIFI, TETHER_ERROR_NO_ERROR);
 
-            mTetheringMetrics.createBuilder(TETHERING_WIFI, callerPkg);
-            updateErrorAndSendReport(TETHERING_WIFI, TETHER_ERROR_NO_ERROR);
-            verifyReport(DownstreamType.DS_TETHERING_WIFI, ErrorCode.EC_NO_ERROR, expectedResult);
-            reset(mTetheringMetrics);
-        }
+        UpstreamEvents.Builder upstreamEvents = UpstreamEvents.newBuilder();
+        // Set UpstreamType as NO_NETWORK because the upstream type has not been changed.
+        addUpstreamEvent(upstreamEvents, UpstreamType.UT_NO_NETWORK, duration);
+        verifyReport(DownstreamType.DS_TETHERING_WIFI, ErrorCode.EC_NO_ERROR, expectedResult,
+                    upstreamEvents, getElapsedRealtime());
+        reset(mTetheringMetrics);
+        clearElapsedRealtime();
+        mTetheringMetrics.cleanup();
     }
 
     @Test
     public void testUserTypes() throws Exception {
-        runUserTypesTest(new Pair<>(TEST_CALLER_PKG, UserType.USER_UNKNOWN),
-                new Pair<>(SETTINGS_PKG, UserType.USER_SETTINGS),
-                new Pair<>(SYSTEMUI_PKG, UserType.USER_SYSTEMUI),
-                new Pair<>(GMS_PKG, UserType.USER_GMS));
+        runUserTypesTest(TEST_CALLER_PKG, UserType.USER_UNKNOWN);
+        runUserTypesTest(SETTINGS_PKG, UserType.USER_SETTINGS);
+        runUserTypesTest(SYSTEMUI_PKG, UserType.USER_SYSTEMUI);
+        runUserTypesTest(GMS_PKG, UserType.USER_GMS);
+    }
+
+    private void runUpstreamTypesTest(final UpstreamNetworkState ns,
+            final UpstreamType expectedResult) throws Exception {
+        mTetheringMetrics.createBuilder(TETHERING_WIFI, TEST_CALLER_PKG);
+        mTetheringMetrics.maybeUpdateUpstreamType(ns);
+        final long duration = 2 * SECOND_IN_MILLIS;
+        incrementCurrentTime(duration);
+        updateErrorAndSendReport(TETHERING_WIFI, TETHER_ERROR_NO_ERROR);
+
+        UpstreamEvents.Builder upstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(upstreamEvents, expectedResult, duration);
+        verifyReport(DownstreamType.DS_TETHERING_WIFI, ErrorCode.EC_NO_ERROR,
+                UserType.USER_UNKNOWN, upstreamEvents, getElapsedRealtime());
+        reset(mTetheringMetrics);
+        clearElapsedRealtime();
+        mTetheringMetrics.cleanup();
+    }
+
+    @Test
+    public void testUpstreamTypes() throws Exception {
+        runUpstreamTypesTest(null , UpstreamType.UT_NO_NETWORK);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_CELLULAR), UpstreamType.UT_CELLULAR);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_WIFI), UpstreamType.UT_WIFI);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_BLUETOOTH), UpstreamType.UT_BLUETOOTH);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_ETHERNET), UpstreamType.UT_ETHERNET);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_WIFI_AWARE), UpstreamType.UT_WIFI_AWARE);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_LOWPAN), UpstreamType.UT_LOWPAN);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_CELLULAR, TRANSPORT_VPN),
+                UpstreamType.UT_CELLULAR_VPN);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_WIFI, TRANSPORT_VPN),
+                UpstreamType.UT_WIFI_VPN);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_BLUETOOTH, TRANSPORT_VPN),
+                UpstreamType.UT_BLUETOOTH_VPN);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_ETHERNET, TRANSPORT_VPN),
+                UpstreamType.UT_ETHERNET_VPN);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_CELLULAR, TRANSPORT_WIFI, TRANSPORT_VPN),
+                UpstreamType.UT_WIFI_CELLULAR_VPN);
+        runUpstreamTypesTest(buildUpstreamState(TRANSPORT_CELLULAR, TRANSPORT_WIFI, TRANSPORT_VPN,
+                TRANSPORT_BLUETOOTH), UpstreamType.UT_UNKNOWN);
     }
 
     @Test
     public void testMultiBuildersCreatedBeforeSendReport() throws Exception {
         mTetheringMetrics.createBuilder(TETHERING_WIFI, SETTINGS_PKG);
+        final long wifiTetheringStartTime = currentTimeMillis();
+        incrementCurrentTime(1 * SECOND_IN_MILLIS);
         mTetheringMetrics.createBuilder(TETHERING_USB, SYSTEMUI_PKG);
+        final long usbTetheringStartTime = currentTimeMillis();
+        incrementCurrentTime(2 * SECOND_IN_MILLIS);
         mTetheringMetrics.createBuilder(TETHERING_BLUETOOTH, GMS_PKG);
-
+        final long bluetoothTetheringStartTime = currentTimeMillis();
+        incrementCurrentTime(3 * SECOND_IN_MILLIS);
         updateErrorAndSendReport(TETHERING_WIFI, TETHER_ERROR_DHCPSERVER_ERROR);
+
+        UpstreamEvents.Builder wifiTetheringUpstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(wifiTetheringUpstreamEvents, UpstreamType.UT_NO_NETWORK,
+                currentTimeMillis() - wifiTetheringStartTime);
         verifyReport(DownstreamType.DS_TETHERING_WIFI, ErrorCode.EC_DHCPSERVER_ERROR,
-                UserType.USER_SETTINGS);
-
+                UserType.USER_SETTINGS, wifiTetheringUpstreamEvents,
+                currentTimeMillis() - wifiTetheringStartTime);
+        incrementCurrentTime(1 * SECOND_IN_MILLIS);
         updateErrorAndSendReport(TETHERING_USB, TETHER_ERROR_ENABLE_FORWARDING_ERROR);
-        verifyReport(DownstreamType.DS_TETHERING_USB, ErrorCode.EC_ENABLE_FORWARDING_ERROR,
-                UserType.USER_SYSTEMUI);
 
+        UpstreamEvents.Builder usbTetheringUpstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(usbTetheringUpstreamEvents, UpstreamType.UT_NO_NETWORK,
+                currentTimeMillis() - usbTetheringStartTime);
+
+        verifyReport(DownstreamType.DS_TETHERING_USB, ErrorCode.EC_ENABLE_FORWARDING_ERROR,
+                UserType.USER_SYSTEMUI, usbTetheringUpstreamEvents,
+                currentTimeMillis() - usbTetheringStartTime);
+        incrementCurrentTime(1 * SECOND_IN_MILLIS);
         updateErrorAndSendReport(TETHERING_BLUETOOTH, TETHER_ERROR_TETHER_IFACE_ERROR);
+
+        UpstreamEvents.Builder bluetoothTetheringUpstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(bluetoothTetheringUpstreamEvents, UpstreamType.UT_NO_NETWORK,
+                currentTimeMillis() - bluetoothTetheringStartTime);
         verifyReport(DownstreamType.DS_TETHERING_BLUETOOTH, ErrorCode.EC_TETHER_IFACE_ERROR,
-                UserType.USER_GMS);
+                UserType.USER_GMS, bluetoothTetheringUpstreamEvents,
+                currentTimeMillis() - bluetoothTetheringStartTime);
+    }
+
+    @Test
+    public void testUpstreamsWithMultipleDownstreams() throws Exception {
+        mTetheringMetrics.createBuilder(TETHERING_WIFI, SETTINGS_PKG);
+        final long wifiTetheringStartTime = currentTimeMillis();
+        incrementCurrentTime(1 * SECOND_IN_MILLIS);
+        mTetheringMetrics.maybeUpdateUpstreamType(buildUpstreamState(TRANSPORT_WIFI));
+        final long wifiUpstreamStartTime = currentTimeMillis();
+        incrementCurrentTime(5 * SECOND_IN_MILLIS);
+        mTetheringMetrics.createBuilder(TETHERING_USB, SYSTEMUI_PKG);
+        final long usbTetheringStartTime = currentTimeMillis();
+        incrementCurrentTime(5 * SECOND_IN_MILLIS);
+        updateErrorAndSendReport(TETHERING_USB, TETHER_ERROR_NO_ERROR);
+
+        UpstreamEvents.Builder usbTetheringUpstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(usbTetheringUpstreamEvents, UpstreamType.UT_WIFI,
+                currentTimeMillis() - usbTetheringStartTime);
+        verifyReport(DownstreamType.DS_TETHERING_USB, ErrorCode.EC_NO_ERROR,
+                UserType.USER_SYSTEMUI, usbTetheringUpstreamEvents,
+                currentTimeMillis() - usbTetheringStartTime);
+        incrementCurrentTime(7 * SECOND_IN_MILLIS);
+        updateErrorAndSendReport(TETHERING_WIFI, TETHER_ERROR_NO_ERROR);
+
+        UpstreamEvents.Builder wifiTetheringUpstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(wifiTetheringUpstreamEvents, UpstreamType.UT_WIFI,
+                currentTimeMillis() - wifiUpstreamStartTime);
+        verifyReport(DownstreamType.DS_TETHERING_WIFI, ErrorCode.EC_NO_ERROR,
+                UserType.USER_SETTINGS, wifiTetheringUpstreamEvents,
+                currentTimeMillis() - wifiTetheringStartTime);
+    }
+
+    @Test
+    public void testSwitchingMultiUpstreams() throws Exception {
+        mTetheringMetrics.createBuilder(TETHERING_WIFI, SETTINGS_PKG);
+        final long wifiTetheringStartTime = currentTimeMillis();
+        incrementCurrentTime(1 * SECOND_IN_MILLIS);
+        mTetheringMetrics.maybeUpdateUpstreamType(buildUpstreamState(TRANSPORT_WIFI));
+        final long wifiDuration = 5 * SECOND_IN_MILLIS;
+        incrementCurrentTime(wifiDuration);
+        mTetheringMetrics.maybeUpdateUpstreamType(buildUpstreamState(TRANSPORT_BLUETOOTH));
+        final long bluetoothDuration = 15 * SECOND_IN_MILLIS;
+        incrementCurrentTime(bluetoothDuration);
+        mTetheringMetrics.maybeUpdateUpstreamType(buildUpstreamState(TRANSPORT_CELLULAR));
+        final long celltoothDuration = 20 * SECOND_IN_MILLIS;
+        incrementCurrentTime(celltoothDuration);
+        updateErrorAndSendReport(TETHERING_WIFI, TETHER_ERROR_NO_ERROR);
+
+        UpstreamEvents.Builder upstreamEvents = UpstreamEvents.newBuilder();
+        addUpstreamEvent(upstreamEvents, UpstreamType.UT_WIFI, wifiDuration);
+        addUpstreamEvent(upstreamEvents, UpstreamType.UT_BLUETOOTH, bluetoothDuration);
+        addUpstreamEvent(upstreamEvents, UpstreamType.UT_CELLULAR, celltoothDuration);
+
+        verifyReport(DownstreamType.DS_TETHERING_WIFI, ErrorCode.EC_NO_ERROR,
+                UserType.USER_SETTINGS, upstreamEvents,
+                currentTimeMillis() - wifiTetheringStartTime);
     }
 }
diff --git a/bpf_progs/clatd.c b/bpf_progs/clatd.c
index 7350209..7c6811a 100644
--- a/bpf_progs/clatd.c
+++ b/bpf_progs/clatd.c
@@ -91,6 +91,12 @@
     if (ip6->version != 6) return TC_ACT_PIPE;
 
     // Maximum IPv6 payload length that can be translated to IPv4
+    // Note: technically this check is too strict for an IPv6 fragment,
+    // which by virtue of stripping the extra 8 byte fragment extension header,
+    // could thus be 8 bytes larger and still fit in an ipv4 packet post
+    // translation.  However... who ever heard of receiving ~64KB frags...
+    // fragments are kind of by definition smaller than ingress device mtu,
+    // and thus, on the internet, very very unlikely to exceed 1500 bytes.
     if (ntohs(ip6->payload_len) > 0xFFFF - sizeof(struct iphdr)) return TC_ACT_PIPE;
 
     ClatIngress6Key k = {
diff --git a/bpf_progs/offload.c b/bpf_progs/offload.c
index a8612df..56ace19 100644
--- a/bpf_progs/offload.c
+++ b/bpf_progs/offload.c
@@ -232,13 +232,13 @@
     // This would require a much newer kernel with newer ebpf accessors.
     // (This is also blindly assuming 12 bytes of tcp timestamp option in tcp header)
     uint64_t packets = 1;
-    uint64_t bytes = skb->len;
-    if (bytes > v->pmtu) {
-        const int tcp_overhead = sizeof(struct ipv6hdr) + sizeof(struct tcphdr) + 12;
-        const int mss = v->pmtu - tcp_overhead;
-        const uint64_t payload = bytes - tcp_overhead;
+    uint64_t L3_bytes = skb->len - l2_header_size;
+    if (L3_bytes > v->pmtu) {
+        const int tcp6_overhead = sizeof(struct ipv6hdr) + sizeof(struct tcphdr) + 12;
+        const int mss = v->pmtu - tcp6_overhead;
+        const uint64_t payload = L3_bytes - tcp6_overhead;
         packets = (payload + mss - 1) / mss;
-        bytes = tcp_overhead * packets + payload;
+        L3_bytes = tcp6_overhead * packets + payload;
     }
 
     // Are we past the limit?  If so, then abort...
@@ -247,7 +247,7 @@
     // a packet we let the core stack deal with things.
     // (The core stack needs to handle limits correctly anyway,
     // since we don't offload all traffic in both directions)
-    if (stat_v->rxBytes + stat_v->txBytes + bytes > *limit_v) TC_PUNT(LIMIT_REACHED);
+    if (stat_v->rxBytes + stat_v->txBytes + L3_bytes > *limit_v) TC_PUNT(LIMIT_REACHED);
 
     if (!is_ethernet) {
         // Try to inject an ethernet header, and simply return if we fail.
@@ -287,7 +287,7 @@
     bpf_csum_update(skb, 0xFFFF - ntohs(old_hl) + ntohs(new_hl));
 
     __sync_fetch_and_add(downstream ? &stat_v->rxPackets : &stat_v->txPackets, packets);
-    __sync_fetch_and_add(downstream ? &stat_v->rxBytes : &stat_v->txBytes, bytes);
+    __sync_fetch_and_add(downstream ? &stat_v->rxBytes : &stat_v->txBytes, L3_bytes);
 
     // Overwrite any mac header with the new one
     // For a rawip tx interface it will simply be a bunch of zeroes and later stripped.
@@ -449,13 +449,13 @@
     // This would require a much newer kernel with newer ebpf accessors.
     // (This is also blindly assuming 12 bytes of tcp timestamp option in tcp header)
     uint64_t packets = 1;
-    uint64_t bytes = skb->len;
-    if (bytes > v->pmtu) {
-        const int tcp_overhead = sizeof(struct iphdr) + sizeof(struct tcphdr) + 12;
-        const int mss = v->pmtu - tcp_overhead;
-        const uint64_t payload = bytes - tcp_overhead;
+    uint64_t L3_bytes = skb->len - l2_header_size;
+    if (L3_bytes > v->pmtu) {
+        const int tcp4_overhead = sizeof(struct iphdr) + sizeof(struct tcphdr) + 12;
+        const int mss = v->pmtu - tcp4_overhead;
+        const uint64_t payload = L3_bytes - tcp4_overhead;
         packets = (payload + mss - 1) / mss;
-        bytes = tcp_overhead * packets + payload;
+        L3_bytes = tcp4_overhead * packets + payload;
     }
 
     // Are we past the limit?  If so, then abort...
@@ -464,7 +464,7 @@
     // a packet we let the core stack deal with things.
     // (The core stack needs to handle limits correctly anyway,
     // since we don't offload all traffic in both directions)
-    if (stat_v->rxBytes + stat_v->txBytes + bytes > *limit_v) TC_PUNT(LIMIT_REACHED);
+    if (stat_v->rxBytes + stat_v->txBytes + L3_bytes > *limit_v) TC_PUNT(LIMIT_REACHED);
 
     if (!is_ethernet) {
         // Try to inject an ethernet header, and simply return if we fail.
@@ -540,7 +540,7 @@
     if (updatetime) v->last_used = bpf_ktime_get_boot_ns();
 
     __sync_fetch_and_add(downstream ? &stat_v->rxPackets : &stat_v->txPackets, packets);
-    __sync_fetch_and_add(downstream ? &stat_v->rxBytes : &stat_v->txBytes, bytes);
+    __sync_fetch_and_add(downstream ? &stat_v->rxBytes : &stat_v->txBytes, L3_bytes);
 
     // Redirect to forwarded interface.
     //
diff --git a/framework-t/Android.bp b/framework-t/Android.bp
index 1a8d46b..ffa2857 100644
--- a/framework-t/Android.bp
+++ b/framework-t/Android.bp
@@ -46,6 +46,7 @@
     libs: [
         "unsupportedappusage",
         "app-compat-annotations",
+        "androidx.annotation_annotation",
     ],
     impl_only_libs: [
         // The build system will use framework-bluetooth module_current stubs, because
@@ -139,7 +140,7 @@
         "//packages/modules/Connectivity/apex",
         "//packages/modules/Connectivity/service", // For R8 only
         "//packages/modules/Connectivity/service-t",
-        "//packages/modules/Connectivity/nearby/service",
+        "//packages/modules/Connectivity/nearby:__subpackages__",
         "//frameworks/base",
 
         // Tests using hidden APIs
@@ -156,7 +157,6 @@
         "//frameworks/opt/telephony/tests/telephonytests",
         "//packages/modules/CaptivePortalLogin/tests",
         "//packages/modules/Connectivity/Tethering/tests:__subpackages__",
-        "//packages/modules/Connectivity/nearby:__subpackages__",
         "//packages/modules/Connectivity/tests:__subpackages__",
         "//packages/modules/IPsec/tests/iketests",
         "//packages/modules/NetworkStack/tests:__subpackages__",
diff --git a/framework-t/Sources.bp b/framework-t/Sources.bp
index 391a562..b8eb1f6 100644
--- a/framework-t/Sources.bp
+++ b/framework-t/Sources.bp
@@ -16,15 +16,13 @@
 
 filegroup {
     name: "framework-connectivity-tiramisu-updatable-sources",
+    defaults: ["framework-sources-module-defaults"],
     srcs: [
         "src/**/*.java",
         "src/**/*.aidl",
     ],
     path: "src",
-    visibility: [
-        "//frameworks/base",
-        "//packages/modules/Connectivity:__subpackages__",
-    ],
+    visibility: ["//packages/modules/Connectivity:__subpackages__"],
 }
 
 cc_library_shared {
diff --git a/framework-t/src/android/net/NetworkTemplate.java b/framework-t/src/android/net/NetworkTemplate.java
index d90bd8d..33bd884 100644
--- a/framework-t/src/android/net/NetworkTemplate.java
+++ b/framework-t/src/android/net/NetworkTemplate.java
@@ -47,6 +47,7 @@
 import android.os.Build;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.text.TextUtils;
 import android.util.ArraySet;
 import android.util.Log;
 
@@ -58,7 +59,10 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 import java.util.SortedSet;
@@ -180,6 +184,23 @@
         }
     }
 
+    private static Set<String> setOf(@Nullable final String item) {
+        if (item == null) {
+            // Set.of will throw if item is null
+            final Set<String> set = new HashSet<>();
+            set.add(null);
+            return Collections.unmodifiableSet(set);
+        } else {
+            return Set.of(item);
+        }
+    }
+
+    private static void throwAtLeastU() {
+        if (SdkLevel.isAtLeastU()) {
+            throw new UnsupportedOperationException("Method not supported on Android U or above");
+        }
+    }
+
     /**
      * Template to match {@link ConnectivityManager#TYPE_MOBILE} networks with
      * the given IMSI.
@@ -192,7 +213,7 @@
             publicAlternatives = "Use {@code Builder} instead.")
     public static NetworkTemplate buildTemplateMobileAll(@NonNull String subscriberId) {
         return new NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES)
-                .setSubscriberIds(Set.of(subscriberId)).build();
+                .setSubscriberIds(setOf(subscriberId)).build();
     }
 
     /**
@@ -256,10 +277,9 @@
     // TODO(b/270089918): Remove this method. This can only be done after there are no more callers,
     //  including in OEM code which can access this by linking against the framework.
     public static NetworkTemplate buildTemplateBluetooth() {
-        if (SdkLevel.isAtLeastU()) {
-            throw new UnsupportedOperationException(
-                    "buildTemplateBluetooth is not supported on Android U devices or above");
-        }
+        // TODO : this is part of hidden-o txt, does that mean it should be annotated with
+        // @UnsupportedAppUsage(maxTargetSdk = O) ? If yes, can't throwAtLeastU() lest apps
+        // targeting O- crash on those devices.
         return new NetworkTemplate.Builder(MATCH_BLUETOOTH).build();
     }
 
@@ -272,13 +292,97 @@
     // TODO(b/270089918): Remove this method. This can only be done after there are no more callers,
     //  including in OEM code which can access this by linking against the framework.
     public static NetworkTemplate buildTemplateProxy() {
-        if (SdkLevel.isAtLeastU()) {
-            throw new UnsupportedOperationException(
-                    "buildTemplateProxy is not supported on Android U devices or above");
-        }
+        // TODO : this is part of hidden-o txt, does that mean it should be annotated with
+        // @UnsupportedAppUsage(maxTargetSdk = O) ? If yes, can't throwAtLeastU() lest apps
+        // targeting O- crash on those devices.
         return new NetworkTemplate(MATCH_PROXY, null, null);
     }
 
+    /**
+     * Template to match all metered carrier networks with the given IMSI.
+     *
+     * @hide
+     */
+    // TODO(b/273963543): Remove this method. This can only be done after there are no more callers,
+    //  including in OEM code which can access this by linking against the framework.
+    public static NetworkTemplate buildTemplateCarrierMetered(@NonNull String subscriberId) {
+        throwAtLeastU();
+        return new NetworkTemplate.Builder(MATCH_CARRIER)
+                // Set.of will throw if subscriberId is null, which is the historical
+                // behavior and should be preserved.
+                .setSubscriberIds(Set.of(subscriberId))
+                .setMeteredness(METERED_YES)
+                .build();
+    }
+
+    /**
+     * Template to match cellular networks with the given IMSI, {@code ratType} and
+     * {@code metered}. Use {@link #NETWORK_TYPE_ALL} to include all network types when
+     * filtering. See {@code TelephonyManager.NETWORK_TYPE_*}.
+     *
+     * @hide
+     */
+    // TODO(b/273963543): Remove this method. This can only be done after there are no more callers,
+    //  including in OEM code which can access this by linking against the framework.
+    public static NetworkTemplate buildTemplateMobileWithRatType(@Nullable String subscriberId,
+            int ratType, int metered) {
+        throwAtLeastU();
+        return new NetworkTemplate.Builder(MATCH_MOBILE)
+                .setSubscriberIds(TextUtils.isEmpty(subscriberId)
+                        ? Collections.emptySet()
+                        : Set.of(subscriberId))
+                .setMeteredness(metered)
+                .setRatType(ratType)
+                .build();
+    }
+
+    /**
+     * Template to match {@link ConnectivityManager#TYPE_WIFI} networks with the
+     * given key of the wifi network.
+     *
+     * @param wifiNetworkKey key of the wifi network. see {@link WifiInfo#getNetworkKey()}
+     *                  to know details about the key.
+     * @hide
+     */
+    // TODO(b/273963543): Remove this method. This can only be done after there are no more callers,
+    //  including in OEM code which can access this by linking against the framework.
+    public static NetworkTemplate buildTemplateWifi(@NonNull String wifiNetworkKey) {
+        // TODO : this is part of hidden-o txt, does that mean it should be annotated with
+        // @UnsupportedAppUsage(maxTargetSdk = O) ? If yes, can't throwAtLeastU() lest apps
+        // targeting O- crash on those devices.
+        return new NetworkTemplate.Builder(MATCH_WIFI)
+                // Set.of will throw if wifiNetworkKey is null, which is the historical
+                // behavior and should be preserved.
+                .setWifiNetworkKeys(Set.of(wifiNetworkKey))
+                .build();
+    }
+
+    /**
+     * Template to match all {@link ConnectivityManager#TYPE_WIFI} networks with the given
+     * key of the wifi network and IMSI.
+     *
+     * Call with {@link #WIFI_NETWORK_KEY_ALL} for {@code wifiNetworkKey} to get result regardless
+     * of key of the wifi network.
+     *
+     * @param wifiNetworkKey key of the wifi network. see {@link WifiInfo#getNetworkKey()}
+     *                  to know details about the key.
+     * @param subscriberId the IMSI associated to this wifi network.
+     *
+     * @hide
+     */
+    // TODO(b/273963543): Remove this method. This can only be done after there are no more callers,
+    //  including in OEM code which can access this by linking against the framework.
+    public static NetworkTemplate buildTemplateWifi(@Nullable String wifiNetworkKey,
+            @Nullable String subscriberId) {
+        throwAtLeastU();
+        return new NetworkTemplate.Builder(MATCH_WIFI)
+                .setSubscriberIds(setOf(subscriberId))
+                .setWifiNetworkKeys(wifiNetworkKey == null
+                        ? Collections.emptySet()
+                        : Set.of(wifiNetworkKey))
+                .build();
+    }
+
     private final int mMatchRule;
 
     /**
@@ -311,12 +415,20 @@
             // subscriber ID.
             case MATCH_CARRIER:
                 if (matchSubscriberIds.length == 0) {
-                    throw new IllegalArgumentException("checkValidMatchSubscriberIds with empty"
-                            + " list of ids for rule" + getMatchRuleName(matchRule));
+                    throw new IllegalArgumentException("matchSubscriberIds may not contain"
+                            + " null for rule " + getMatchRuleName(matchRule));
                 }
-                // fall through
-            case MATCH_MOBILE:
                 if (CollectionUtils.contains(matchSubscriberIds, null)) {
+                    throw new IllegalArgumentException("matchSubscriberIds may not contain"
+                            + " null for rule " + getMatchRuleName(matchRule));
+                }
+                break;
+            case MATCH_MOBILE:
+                // Prevent from crash for b/273963543, where the OEMs still call into unsupported
+                // buildTemplateMobileAll with null subscriberId and get crashed.
+                final int firstSdk = Build.VERSION.DEVICE_INITIAL_SDK_INT;
+                if (firstSdk > Build.VERSION_CODES.TIRAMISU
+                        && CollectionUtils.contains(matchSubscriberIds, null)) {
                     throw new IllegalArgumentException("checkValidMatchSubscriberIds list of ids"
                             + " may not contain null for rule " + getMatchRuleName(matchRule));
                 }
@@ -349,10 +461,6 @@
         if (matchRule == 6 || matchRule == 7) {
             Log.e(TAG, "Use MATCH_MOBILE with empty subscriberIds or MATCH_WIFI with empty "
                     + "wifiNetworkKeys instead of template with matchRule=" + matchRule);
-            if (SdkLevel.isAtLeastU()) {
-                throw new UnsupportedOperationException(
-                        "Wildcard templates are not supported on Android U devices or above");
-            }
         }
     }
 
@@ -386,10 +494,9 @@
                 getMeterednessForBackwardsCompatibility(matchRule),
                 ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
                 OEM_MANAGED_ALL);
-        if (SdkLevel.isAtLeastU()) {
-            throw new UnsupportedOperationException(
-                    "This constructor is not supported on Android U devices or above");
-        }
+        // TODO : this is part of hidden-o txt, does that mean it should be annotated with
+        // @UnsupportedAppUsage(maxTargetSdk = O) ? If yes, can't throwAtLeastU() lest apps
+        // targeting O- crash on those devices.
     }
 
     /** @hide */
@@ -404,10 +511,7 @@
         this(getBackwardsCompatibleMatchRule(matchRule),
                 matchSubscriberIds == null ? new String[]{} : matchSubscriberIds,
                 matchWifiNetworkKeys, metered, roaming, defaultNetwork, ratType, oemManaged);
-        if (SdkLevel.isAtLeastU()) {
-            throw new UnsupportedOperationException(
-                    "This constructor is not supported on Android U devices or above");
-        }
+        throwAtLeastU();
     }
 
     /** @hide */
@@ -514,10 +618,9 @@
     //  including in OEM code which can access this by linking against the framework.
     /** @hide */
     public boolean isMatchRuleMobile() {
-        if (SdkLevel.isAtLeastU()) {
-            throw new UnsupportedOperationException(
-                    "isMatchRuleMobile is not supported on Android U devices or above");
-        }
+        // TODO : this is part of hidden-o txt, does that mean it should be annotated with
+        // @UnsupportedAppUsage(maxTargetSdk = O) ? If yes, can't throwAtLeastU() lest apps
+        // targeting O- crash on those devices.
         switch (mMatchRule) {
             case MATCH_MOBILE:
             // Old MATCH_MOBILE_WILDCARD
@@ -830,8 +933,7 @@
      * subscribers.
      * <p>
      * For example, given an incoming template matching B, and the currently
-     * active merge set [A,B], we'd return a new template that primarily matches
-     * A, but also matches B.
+     * active merge set [A,B], we'd return a new template that matches both A and B.
      *
      * @hide
      */
@@ -840,6 +942,46 @@
                     + "Callers should have their own logic to merge template for"
                     + " different IMSIs and stop calling this function.")
     public static NetworkTemplate normalize(NetworkTemplate template, String[] merged) {
+        return normalizeImpl(template, Collections.singletonList(merged));
+    }
+
+    /**
+     * Examine the given template and normalize it.
+     * We pick the "lowest" merged subscriber as the primary
+     * for key purposes, and expand the template to match all other merged
+     * subscribers.
+     *
+     * There can be multiple merged subscriberIds for multi-SIM devices.
+     *
+     * <p>
+     * For example, given an incoming template matching B, and the currently
+     * active merge set [A,B], we'd return a new template that matches both A and B.
+     *
+     * @hide
+     */
+    // TODO(b/273963543): Remove this method. This can only be done after there are no more callers,
+    //  including in OEM code which can access this by linking against the framework.
+    public static NetworkTemplate normalize(NetworkTemplate template, List<String[]> mergedList) {
+        throwAtLeastU();
+        return normalizeImpl(template, mergedList);
+    }
+
+    /**
+     * Examine the given template and normalize it.
+     * We pick the "lowest" merged subscriber as the primary
+     * for key purposes, and expand the template to match all other merged
+     * subscribers.
+     *
+     * There can be multiple merged subscriberIds for multi-SIM devices.
+     *
+     * <p>
+     * For example, given an incoming template matching B, and the currently
+     * active merge set [A,B], we'd return a new template that matches both A and B.
+     *
+     * @hide
+     */
+    private static NetworkTemplate normalizeImpl(NetworkTemplate template,
+            List<String[]> mergedList) {
         // Now there are several types of network which uses SubscriberId to store network
         // information. For instances:
         // The TYPE_WIFI with subscriberId means that it is a merged carrier wifi network.
@@ -847,18 +989,21 @@
 
         if (CollectionUtils.isEmpty(template.mMatchSubscriberIds)) return template;
 
-        if (CollectionUtils.contains(merged, template.mMatchSubscriberIds[0])) {
-            // Requested template subscriber is part of the merge group; return
-            // a template that matches all merged subscribers.
-            final String[] matchWifiNetworkKeys = template.mMatchWifiNetworkKeys;
-            // TODO: Use NetworkTemplate.Builder to build a template after NetworkTemplate
-            // could handle incompatible subscriberIds. See b/217805241.
-            return new NetworkTemplate(template.mMatchRule, merged,
-                    CollectionUtils.isEmpty(matchWifiNetworkKeys)
-                            ? new String[0] : new String[] { matchWifiNetworkKeys[0] },
-                    (template.mMatchRule == MATCH_MOBILE || template.mMatchRule == MATCH_CARRIER)
-                            ? METERED_YES : METERED_ALL,
-                    ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL);
+        for (String[] merged : mergedList) {
+            if (CollectionUtils.contains(merged, template.mMatchSubscriberIds[0])) {
+                // Requested template subscriber is part of the merge group; return
+                // a template that matches all merged subscribers.
+                final String[] matchWifiNetworkKeys = template.mMatchWifiNetworkKeys;
+                // TODO: Use NetworkTemplate.Builder to build a template after NetworkTemplate
+                // could handle incompatible subscriberIds. See b/217805241.
+                return new NetworkTemplate(template.mMatchRule, merged,
+                        CollectionUtils.isEmpty(matchWifiNetworkKeys)
+                                ? new String[0] : new String[] { matchWifiNetworkKeys[0] },
+                        (template.mMatchRule == MATCH_MOBILE
+                                || template.mMatchRule == MATCH_CARRIER)
+                                ? METERED_YES : METERED_ALL,
+                        ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL);
+            }
         }
 
         return template;
diff --git a/framework-t/src/android/net/nsd/INsdManager.aidl b/framework-t/src/android/net/nsd/INsdManager.aidl
index 89e9cdb..9d14b1a 100644
--- a/framework-t/src/android/net/nsd/INsdManager.aidl
+++ b/framework-t/src/android/net/nsd/INsdManager.aidl
@@ -26,5 +26,5 @@
  * {@hide}
  */
 interface INsdManager {
-    INsdServiceConnector connect(INsdManagerCallback cb);
+    INsdServiceConnector connect(INsdManagerCallback cb, boolean useJavaBackend);
 }
diff --git a/framework-t/src/android/net/nsd/NsdManager.java b/framework-t/src/android/net/nsd/NsdManager.java
index 36808cf..96f2f80 100644
--- a/framework-t/src/android/net/nsd/NsdManager.java
+++ b/framework-t/src/android/net/nsd/NsdManager.java
@@ -16,6 +16,7 @@
 
 package android.net.nsd;
 
+import static android.net.connectivity.ConnectivityCompatChanges.ENABLE_PLATFORM_MDNS_BACKEND;
 import static android.net.connectivity.ConnectivityCompatChanges.RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER;
 
 import android.annotation.IntDef;
@@ -510,7 +511,8 @@
         mHandler = new ServiceHandler(t.getLooper());
 
         try {
-            mService = service.connect(new NsdCallbackImpl(mHandler));
+            mService = service.connect(new NsdCallbackImpl(mHandler), CompatChanges.isChangeEnabled(
+                    ENABLE_PLATFORM_MDNS_BACKEND));
         } catch (RemoteException e) {
             throw new RuntimeException("Failed to connect to NsdService");
         }
diff --git a/framework/Android.bp b/framework/Android.bp
index 3950dba..2d729c5 100644
--- a/framework/Android.bp
+++ b/framework/Android.bp
@@ -45,14 +45,12 @@
 // TODO: use a java_library in the bootclasspath instead
 filegroup {
     name: "framework-connectivity-sources",
+    defaults: ["framework-sources-module-defaults"],
     srcs: [
         ":framework-connectivity-internal-sources",
         ":framework-connectivity-aidl-export-sources",
     ],
-    visibility: [
-        "//frameworks/base",
-        "//packages/modules/Connectivity:__subpackages__",
-    ],
+    visibility: ["//packages/modules/Connectivity:__subpackages__"],
 }
 
 java_defaults {
diff --git a/framework/api/system-current.txt b/framework/api/system-current.txt
index 196e023..4a2ed8a 100644
--- a/framework/api/system-current.txt
+++ b/framework/api/system-current.txt
@@ -470,7 +470,7 @@
   }
 
   public abstract class SocketKeepalive implements java.lang.AutoCloseable {
-    method public final void start(@IntRange(from=0xa, to=0xe10) int, int, @NonNull android.net.Network);
+    method public final void start(@IntRange(from=0xa, to=0xe10) int, int, @Nullable android.net.Network);
     field public static final int ERROR_NO_SUCH_SLOT = -33; // 0xffffffdf
     field public static final int FLAG_AUTOMATIC_ON_OFF = 1; // 0x1
     field public static final int SUCCESS = 0; // 0x0
diff --git a/framework/src/android/net/NetworkCapabilities.java b/framework/src/android/net/NetworkCapabilities.java
index 324f565..3cc9c65 100644
--- a/framework/src/android/net/NetworkCapabilities.java
+++ b/framework/src/android/net/NetworkCapabilities.java
@@ -757,10 +757,10 @@
                     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.
+     * Capabilities that are allowed for all 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 =
             BitUtils.packBitList(
@@ -774,6 +774,14 @@
             NET_CAPABILITY_NOT_VCN_MANAGED);
 
     /**
+     * Extra allowed capabilities for test networks that do not have TRANSPORT_CELLULAR. Test
+     * networks with TRANSPORT_CELLULAR must not have those capabilities in order to mitigate
+     * the risk of being used by running apps.
+     */
+    private static final long TEST_NETWORKS_EXTRA_ALLOWED_CAPABILITIES_ON_NON_CELL =
+            BitUtils.packBitList(NET_CAPABILITY_CBS, NET_CAPABILITY_DUN, NET_CAPABILITY_RCS);
+
+    /**
      * Adds the given capability to this {@code NetworkCapability} instance.
      * Note that when searching for a network to satisfy a request, all capabilities
      * requested must be satisfied.
@@ -1126,14 +1134,22 @@
             mTransportTypes =
                     (originalTransportTypes & UNRESTRICTED_TEST_NETWORKS_ALLOWED_TRANSPORTS)
                             | (1 << TRANSPORT_TEST);
-
-            // SubIds are only allowed for Test Networks that only declare TRANSPORT_TEST.
-            setSubscriptionIds(originalSubIds);
         } else {
             // If the test network is restricted, then it may declare any transport.
             mTransportTypes = (originalTransportTypes | (1 << TRANSPORT_TEST));
         }
+
+        if (hasSingleTransport(TRANSPORT_TEST)) {
+            // SubIds are only allowed for Test Networks that only declare TRANSPORT_TEST.
+            setSubscriptionIds(originalSubIds);
+        }
+
         mNetworkCapabilities = originalCapabilities & TEST_NETWORKS_ALLOWED_CAPABILITIES;
+        if (!hasTransport(TRANSPORT_CELLULAR)) {
+            mNetworkCapabilities |=
+                    (originalCapabilities & TEST_NETWORKS_EXTRA_ALLOWED_CAPABILITIES_ON_NON_CELL);
+        }
+
         mNetworkSpecifier = originalSpecifier;
         mSignalStrength = originalSignalStrength;
         mTransportInfo = originalTransportInfo;
diff --git a/framework/src/android/net/SocketKeepalive.java b/framework/src/android/net/SocketKeepalive.java
index 311126e..10daf17 100644
--- a/framework/src/android/net/SocketKeepalive.java
+++ b/framework/src/android/net/SocketKeepalive.java
@@ -21,6 +21,7 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.os.Binder;
 import android.os.ParcelFileDescriptor;
@@ -374,12 +375,14 @@
      *                    the supplied {@link Callback} will see a call to
      *                    {@link Callback#onError(int)} with {@link #ERROR_INVALID_INTERVAL}.
      * @param flags Flags to enable/disable available options on this keepalive.
-     * @param underpinnedNetwork The underpinned network of this keepalive.
+     * @param underpinnedNetwork an optional network running over mNetwork that this
+     *                           keepalive is intended to keep up, e.g. an IPSec
+     *                           tunnel running over mNetwork.
      * @hide
      */
     @SystemApi(client = PRIVILEGED_APPS)
     public final void start(@IntRange(from = MIN_INTERVAL_SEC, to = MAX_INTERVAL_SEC)
-            int intervalSec, @StartFlags int flags, @NonNull Network underpinnedNetwork) {
+            int intervalSec, @StartFlags int flags, @Nullable Network underpinnedNetwork) {
         startImpl(intervalSec, flags, underpinnedNetwork);
     }
 
diff --git a/framework/src/android/net/TcpSocketKeepalive.java b/framework/src/android/net/TcpSocketKeepalive.java
index b548f6d..696889f 100644
--- a/framework/src/android/net/TcpSocketKeepalive.java
+++ b/framework/src/android/net/TcpSocketKeepalive.java
@@ -55,6 +55,12 @@
             throw new IllegalArgumentException("Illegal flag value for "
                     + this.getClass().getSimpleName() + " : " + flags);
         }
+
+        if (underpinnedNetwork != null) {
+            throw new IllegalArgumentException("Illegal underpinned network for "
+                    + this.getClass().getSimpleName() + " : " + underpinnedNetwork);
+        }
+
         mExecutor.execute(() -> {
             try {
                 mService.startTcpKeepalive(mNetwork, mPfd, intervalSec, mCallback);
diff --git a/framework/src/android/net/connectivity/ConnectivityCompatChanges.java b/framework/src/android/net/connectivity/ConnectivityCompatChanges.java
index 2cfda9e..dfe5867 100644
--- a/framework/src/android/net/connectivity/ConnectivityCompatChanges.java
+++ b/framework/src/android/net/connectivity/ConnectivityCompatChanges.java
@@ -73,6 +73,17 @@
     @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.TIRAMISU)
     public static final long ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION = 266524688;
 
+    /**
+     * Apps targeting < Android 14 use a legacy NSD backend.
+     *
+     * The legacy apps use a legacy native daemon as NsdManager backend, but other apps use a
+     * platform-integrated mDNS implementation as backend.
+     *
+     * @hide
+     */
+    @ChangeId
+    @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.TIRAMISU)
+    public static final long ENABLE_PLATFORM_MDNS_BACKEND = 270306772L;
     private ConnectivityCompatChanges() {
     }
 }
diff --git a/nearby/framework/Android.bp b/nearby/framework/Android.bp
index e223b54..278f823 100644
--- a/nearby/framework/Android.bp
+++ b/nearby/framework/Android.bp
@@ -32,10 +32,10 @@
 
 filegroup {
     name: "framework-nearby-sources",
+    defaults: ["framework-sources-module-defaults"],
     srcs: [
         ":framework-nearby-java-sources",
     ],
-    visibility: ["//frameworks/base"],
 }
 
 // Build of only framework-nearby (not as part of connectivity) for
@@ -45,6 +45,7 @@
     srcs: [":framework-nearby-java-sources"],
     sdk_version: "module_current",
     libs: [
+        "androidx.annotation_annotation",
         "framework-annotations-lib",
         "framework-bluetooth",
     ],
diff --git a/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java b/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java
index 2a38b8a..07e5776 100644
--- a/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java
+++ b/nearby/halfsheet/src/com/android/nearby/halfsheet/HalfSheetActivity.java
@@ -16,6 +16,8 @@
 
 package com.android.nearby.halfsheet;
 
+import static android.Manifest.permission.ACCESS_FINE_LOCATION;
+
 import static com.android.nearby.halfsheet.fragment.DevicePairingFragment.APP_LAUNCH_FRAGMENT_TYPE;
 import static com.android.server.nearby.common.bluetooth.fastpair.FastPairConstants.EXTRA_MODEL_ID;
 import static com.android.server.nearby.common.fastpair.service.UserActionHandlerBase.EXTRA_MAC_ADDRESS;
@@ -226,7 +228,8 @@
                                     EXTRA_HALF_SHEET_IS_RETROACTIVE,
                                     getIntent().getBooleanExtra(EXTRA_HALF_SHEET_IS_RETROACTIVE,
                                             false))
-                            .putExtra(EXTRA_MAC_ADDRESS, mScanFastPairStoreItem.getAddress()));
+                            .putExtra(EXTRA_MAC_ADDRESS, mScanFastPairStoreItem.getAddress()),
+                    ACCESS_FINE_LOCATION);
         }
     }
 
diff --git a/nearby/halfsheet/src/com/android/nearby/halfsheet/utils/BroadcastUtils.java b/nearby/halfsheet/src/com/android/nearby/halfsheet/utils/BroadcastUtils.java
index 467997c..2f1e90a 100644
--- a/nearby/halfsheet/src/com/android/nearby/halfsheet/utils/BroadcastUtils.java
+++ b/nearby/halfsheet/src/com/android/nearby/halfsheet/utils/BroadcastUtils.java
@@ -31,6 +31,13 @@
         context.sendBroadcast(intent);
     }
 
+    /**
+     * Helps send a broadcast with specified receiver permission.
+     */
+    public static void sendBroadcast(Context context, Intent intent, String receiverPermission) {
+        context.sendBroadcast(intent, receiverPermission);
+    }
+
     private BroadcastUtils() {
     }
 }
diff --git a/nearby/tests/multidevices/clients/test_support/snippet_helper/tests/Android.bp b/nearby/tests/multidevices/clients/test_support/snippet_helper/tests/Android.bp
index 284d5c2..ec0392c 100644
--- a/nearby/tests/multidevices/clients/test_support/snippet_helper/tests/Android.bp
+++ b/nearby/tests/multidevices/clients/test_support/snippet_helper/tests/Android.bp
@@ -35,4 +35,5 @@
         // timeout in seconds.
         timeout: 36000,
     },
-}
\ No newline at end of file
+    upstream: true,
+}
diff --git a/nearby/tests/multidevices/host/Android.bp b/nearby/tests/multidevices/host/Android.bp
index b81032d..b6c1c9d 100644
--- a/nearby/tests/multidevices/host/Android.bp
+++ b/nearby/tests/multidevices/host/Android.bp
@@ -22,7 +22,10 @@
     name: "NearbyMultiDevicesTestSuite",
     main: "suite_main.py",
     srcs: ["*.py"],
-    libs: ["NearbyMultiDevicesHostHelper"],
+    libs: [
+        "NearbyMultiDevicesHostHelper",
+        "mobly",
+    ],
     test_suites: [
         "general-tests",
         "mts-tethering",
@@ -38,6 +41,11 @@
         // Package the JSON metadata with the Mobly test.
         "test_data/**/*",
     ],
+    version: {
+        py3: {
+            embedded_launcher: true,
+        },
+    },
 }
 
 python_library_host {
diff --git a/nearby/tests/multidevices/host/AndroidTest.xml b/nearby/tests/multidevices/host/AndroidTest.xml
index c1f6a70..fff0ed1 100644
--- a/nearby/tests/multidevices/host/AndroidTest.xml
+++ b/nearby/tests/multidevices/host/AndroidTest.xml
@@ -42,11 +42,6 @@
             <option name="run-command" value="input keyevent KEYCODE_WAKEUP" />
             <option name="run-command" value="wm dismiss-keyguard" />
         </target_preparer>
-        <target_preparer class="com.android.tradefed.targetprep.PythonVirtualenvPreparer">
-          <!-- Any python dependencies can be specified and will be installed with pip -->
-          <!-- TODO(b/225958696): Import python dependencies -->
-          <option name="dep-module" value="mobly" />
-        </target_preparer>
         <target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
             <option name="force-skip-system-props" value="true" /> <!-- avoid restarting device -->
             <option name="screen-always-on" value="on" />
diff --git a/nearby/tests/multidevices/host/suite_main.py b/nearby/tests/multidevices/host/suite_main.py
index 4f5d48c..9a580fb 100644
--- a/nearby/tests/multidevices/host/suite_main.py
+++ b/nearby/tests/multidevices/host/suite_main.py
@@ -31,11 +31,9 @@
 ]
 
 
-def _valid_argument(arg: str) -> bool:
-    return arg.startswith(('--config', '-c', '--tests', '--test_case'))
-
-
 if __name__ == '__main__':
     logging.basicConfig(filename=_BOOTSTRAP_LOGGING_FILENAME, level=logging.INFO)
-    suite_runner.run_suite(argv=[arg for arg in sys.argv if _valid_argument(arg)],
-                           test_classes=_TEST_CLASSES_LIST)
+    if '--' in sys.argv:
+        index = sys.argv.index('--')
+        sys.argv = sys.argv[:1] + sys.argv[index + 1:]
+    suite_runner.run_suite(test_classes=_TEST_CLASSES_LIST)
diff --git a/nearby/tests/robotests/Android.bp b/nearby/tests/robotests/Android.bp
index 56c0107..70fa0c3 100644
--- a/nearby/tests/robotests/Android.bp
+++ b/nearby/tests/robotests/Android.bp
@@ -42,15 +42,14 @@
         "androidx.lifecycle_lifecycle-runtime",
         "androidx.mediarouter_mediarouter-nodeps",
         "error_prone_annotations",
-        "mockito-robolectric-prebuilt",
         "service-nearby-pre-jarjar",
         "truth-prebuilt",
         "robolectric_android-all-stub",
-        "Robolectric_all-target",
     ],
 
     test_options: {
         // timeout in seconds.
         timeout: 36000,
     },
+    upstream: true,
 }
diff --git a/service-t/Android.bp b/service-t/Android.bp
index 5bf2973..7de749c 100644
--- a/service-t/Android.bp
+++ b/service-t/Android.bp
@@ -75,3 +75,47 @@
         "//packages/modules/IPsec/tests/iketests",
     ],
 }
+
+// Test building mDNS as a standalone, so that it can be imported into other repositories as-is.
+// The mDNS code is platform code so it should use framework-annotations-lib, contrary to apps that
+// should use sdk_version: "system_current" and only androidx.annotation_annotation. But this build
+// rule verifies that the mDNS code can be built into apps, if code transformations are applied to
+// the annotations.
+// When using "system_current", framework annotations are not available; they would appear as
+// package-private as they are marked as such in the system_current stubs. So build against
+// core_platform and add the stubs manually in "libs". See http://b/147773144#comment7.
+java_library {
+    name: "service-connectivity-mdns-standalone-build-test",
+    sdk_version: "core_platform",
+    srcs: [
+        ":service-mdns-droidstubs",
+        "src/com/android/server/connectivity/mdns/**/*.java",
+    ],
+    exclude_srcs: [
+        "src/com/android/server/connectivity/mdns/internal/SocketNetlinkMonitor.java",
+        "src/com/android/server/connectivity/mdns/SocketNetLinkMonitorFactory.java"
+    ],
+    static_libs: [
+        "net-utils-device-common-mdns-standalone-build-test",
+    ],
+    libs: [
+        "framework-annotations-lib",
+        "android_system_stubs_current",
+        "androidx.annotation_annotation",
+    ],
+    visibility: [
+        "//visibility:private",
+    ],
+}
+
+droidstubs {
+    name: "service-mdns-droidstubs",
+    srcs: ["src/com/android/server/connectivity/mdns/SocketNetLinkMonitorFactory.java"],
+    libs: [
+        "net-utils-device-common-mdns-standalone-build-test",
+        "service-connectivity-tiramisu-pre-jarjar"
+    ],
+    visibility: [
+        "//visibility:private",
+    ],
+}
\ No newline at end of file
diff --git a/service-t/native/libs/libnetworkstats/Android.bp b/service-t/native/libs/libnetworkstats/Android.bp
index f2c569f..f40d388 100644
--- a/service-t/native/libs/libnetworkstats/Android.bp
+++ b/service-t/native/libs/libnetworkstats/Android.bp
@@ -62,6 +62,7 @@
     header_libs: ["bpf_connectivity_headers"],
     srcs: [
         "BpfNetworkStatsTest.cpp",
+        "NetworkTraceHandlerTest.cpp",
         "NetworkTracePollerTest.cpp",
     ],
     cflags: [
@@ -74,6 +75,8 @@
         "libgmock",
         "libnetworkstats",
         "libperfetto_client_experimental",
+        "libprotobuf-cpp-lite",
+        "perfetto_trace_protos",
     ],
     shared_libs: [
         "libbase",
diff --git a/service-t/native/libs/libnetworkstats/NetworkTraceHandler.cpp b/service-t/native/libs/libnetworkstats/NetworkTraceHandler.cpp
index 8e70950..6aa0fb4 100644
--- a/service-t/native/libs/libnetworkstats/NetworkTraceHandler.cpp
+++ b/service-t/native/libs/libnetworkstats/NetworkTraceHandler.cpp
@@ -34,11 +34,61 @@
 namespace android {
 namespace bpf {
 using ::android::bpf::internal::NetworkTracePoller;
+using ::perfetto::protos::pbzero::NetworkPacketBundle;
 using ::perfetto::protos::pbzero::NetworkPacketEvent;
 using ::perfetto::protos::pbzero::NetworkPacketTraceConfig;
 using ::perfetto::protos::pbzero::TracePacket;
 using ::perfetto::protos::pbzero::TrafficDirection;
 
+// Bundling takes groups of packets with similar contextual fields (generally,
+// all fields except timestamp and length) and summarises them in a single trace
+// packet. For example, rather than
+//
+//   {.timestampNs = 1, .uid = 1000, .tag = 123, .len = 72}
+//   {.timestampNs = 2, .uid = 1000, .tag = 123, .len = 100}
+//   {.timestampNs = 5, .uid = 1000, .tag = 123, .len = 456}
+//
+// The output will be something like
+//   {
+//     .timestamp = 1
+//     .ctx = {.uid = 1000, .tag = 123}
+//     .timestamp = [0, 1, 4], // delta encoded
+//     .length = [72, 100, 456], // should be zipped with timestamps
+//   }
+//
+// Most workloads have many packets from few contexts. Bundling greatly reduces
+// the amount of redundant information written, thus reducing the overall trace
+// size. Interning ids are similarly based on unique bundle contexts.
+
+// Based on boost::hash_combine
+template <typename T, typename... Rest>
+void HashCombine(std::size_t& seed, const T& val, const Rest&... rest) {
+  seed ^= std::hash<T>()(val) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
+  (HashCombine(seed, rest), ...);
+}
+
+// Details summarises the timestamp and lengths of packets in a bundle.
+struct BundleDetails {
+  std::vector<std::pair<uint64_t, uint32_t>> time_and_len;
+  uint64_t minTs = std::numeric_limits<uint64_t>::max();
+  uint64_t maxTs = std::numeric_limits<uint64_t>::min();
+  uint32_t bytes = 0;
+};
+
+#define AGG_FIELDS(x)                                              \
+  (x).ifindex, (x).uid, (x).tag, (x).sport, (x).dport, (x).egress, \
+      (x).ipProto, (x).tcpFlags
+
+std::size_t BundleHash::operator()(const BundleKey& a) const {
+  std::size_t seed = 0;
+  HashCombine(seed, AGG_FIELDS(a));
+  return seed;
+}
+
+bool BundleEq::operator()(const BundleKey& a, const BundleKey& b) const {
+  return std::tie(AGG_FIELDS(a)) == std::tie(AGG_FIELDS(b));
+}
+
 // static
 void NetworkTraceHandler::RegisterDataSource() {
   ALOGD("Registering Perfetto data source");
@@ -51,17 +101,27 @@
 void NetworkTraceHandler::InitPerfettoTracing() {
   perfetto::TracingInitArgs args = {};
   args.backends |= perfetto::kSystemBackend;
+  // The following line disables the Perfetto system consumer. Perfetto inlines
+  // the call to `Initialize` which allows the compiler to see that the branch
+  // with the SystemConsumerTracingBackend is not used. With LTO enabled, this
+  // strips the Perfetto consumer code and reduces the size of this binary by
+  // around 270KB total. Be careful when changing this value.
   args.enable_system_consumer = false;
   perfetto::Tracing::Initialize(args);
   NetworkTraceHandler::RegisterDataSource();
 }
 
 // static
-NetworkTracePoller NetworkTraceHandler::sPoller([](const PacketTrace& pkt) {
-  NetworkTraceHandler::Trace([pkt](NetworkTraceHandler::TraceContext ctx) {
-    NetworkTraceHandler::Fill(pkt, *ctx.NewTracePacket());
-  });
-});
+NetworkTracePoller NetworkTraceHandler::sPoller(
+    [](const std::vector<PacketTrace>& packets) {
+      // Trace calls the provided callback for each active session. The context
+      // gets a reference to the NetworkTraceHandler instance associated with
+      // the session and delegates writing. The corresponding handler will write
+      // with the setting specified in the trace config.
+      NetworkTraceHandler::Trace([&](NetworkTraceHandler::TraceContext ctx) {
+        ctx.GetDataSourceLocked()->Write(packets, ctx);
+      });
+    });
 
 void NetworkTraceHandler::OnSetup(const SetupArgs& args) {
   const std::string& raw = args.config->network_packet_trace_config_raw();
@@ -72,32 +132,118 @@
     ALOGI("poll_ms is missing or below the 100ms minimum. Increasing to 100ms");
     mPollMs = 100;
   }
+
+  mInternLimit = config.intern_limit();
+  mAggregationThreshold = config.aggregation_threshold();
+  mDropLocalPort = config.drop_local_port();
+  mDropRemotePort = config.drop_remote_port();
+  mDropTcpFlags = config.drop_tcp_flags();
 }
 
 void NetworkTraceHandler::OnStart(const StartArgs&) {
+  if (mIsTest) return;  // Don't touch non-hermetic bpf in test.
   mStarted = sPoller.Start(mPollMs);
 }
 
 void NetworkTraceHandler::OnStop(const StopArgs&) {
+  if (mIsTest) return;  // Don't touch non-hermetic bpf in test.
   if (mStarted) sPoller.Stop();
   mStarted = false;
 }
 
-// static class method
-void NetworkTraceHandler::Fill(const PacketTrace& src, TracePacket& dst) {
-  dst.set_timestamp(src.timestampNs);
-  auto* event = dst.set_network_packet();
+void NetworkTraceHandler::Write(const std::vector<PacketTrace>& packets,
+                                NetworkTraceHandler::TraceContext& ctx) {
+  // TODO: remove this fallback once Perfetto stable has support for bundles.
+  if (!mInternLimit && !mAggregationThreshold) {
+    for (const PacketTrace& pkt : packets) {
+      auto dst = ctx.NewTracePacket();
+      dst->set_timestamp(pkt.timestampNs);
+      auto* event = dst->set_network_packet();
+      event->set_length(pkt.length);
+      Fill(pkt, event);
+    }
+    return;
+  }
+
+  uint64_t minTs = std::numeric_limits<uint64_t>::max();
+  std::unordered_map<BundleKey, BundleDetails, BundleHash, BundleEq> bundles;
+  for (const PacketTrace& pkt : packets) {
+    BundleKey key = pkt;
+
+    // Dropping fields should remove them from the output and remove them from
+    // the aggregation key. In order to do the latter without changing the hash
+    // function, set the dropped fields to zero.
+    if (mDropTcpFlags) key.tcpFlags = 0;
+    if (mDropLocalPort) (key.egress ? key.sport : key.dport) = 0;
+    if (mDropRemotePort) (key.egress ? key.dport : key.sport) = 0;
+
+    minTs = std::min(minTs, pkt.timestampNs);
+
+    BundleDetails& bundle = bundles[key];
+    bundle.time_and_len.emplace_back(pkt.timestampNs, pkt.length);
+    bundle.minTs = std::min(bundle.minTs, pkt.timestampNs);
+    bundle.maxTs = std::max(bundle.maxTs, pkt.timestampNs);
+    bundle.bytes += pkt.length;
+  }
+
+  NetworkTraceState* incr_state = ctx.GetIncrementalState();
+  for (const auto& kv : bundles) {
+    const BundleKey& key = kv.first;
+    const BundleDetails& details = kv.second;
+
+    auto dst = ctx.NewTracePacket();
+    dst->set_timestamp(details.minTs);
+
+    // Incremental state is only used when interning. Set the flag based on
+    // whether state was cleared. Leave the flag empty in non-intern configs.
+    if (mInternLimit > 0) {
+      if (incr_state->cleared) {
+        dst->set_sequence_flags(TracePacket::SEQ_INCREMENTAL_STATE_CLEARED);
+        incr_state->cleared = false;
+      } else {
+        dst->set_sequence_flags(TracePacket::SEQ_NEEDS_INCREMENTAL_STATE);
+      }
+    }
+
+    auto* event = FillWithInterning(incr_state, key, dst.get());
+
+    int count = details.time_and_len.size();
+    if (!mAggregationThreshold || count < mAggregationThreshold) {
+      protozero::PackedVarInt offsets;
+      protozero::PackedVarInt lengths;
+      for (const auto& kv : details.time_and_len) {
+        offsets.Append(kv.first - details.minTs);
+        lengths.Append(kv.second);
+      }
+
+      event->set_packet_timestamps(offsets);
+      event->set_packet_lengths(lengths);
+    } else {
+      event->set_total_duration(details.maxTs - details.minTs);
+      event->set_total_length(details.bytes);
+      event->set_total_packets(count);
+    }
+  }
+}
+
+void NetworkTraceHandler::Fill(const PacketTrace& src,
+                               NetworkPacketEvent* event) {
   event->set_direction(src.egress ? TrafficDirection::DIR_EGRESS
                                   : TrafficDirection::DIR_INGRESS);
-  event->set_length(src.length);
   event->set_uid(src.uid);
   event->set_tag(src.tag);
 
-  event->set_local_port(src.egress ? ntohs(src.sport) : ntohs(src.dport));
-  event->set_remote_port(src.egress ? ntohs(src.dport) : ntohs(src.sport));
+  if (!mDropLocalPort) {
+    event->set_local_port(ntohs(src.egress ? src.sport : src.dport));
+  }
+  if (!mDropRemotePort) {
+    event->set_remote_port(ntohs(src.egress ? src.dport : src.sport));
+  }
+  if (!mDropTcpFlags) {
+    event->set_tcp_flags(src.tcpFlags);
+  }
 
   event->set_ip_proto(src.ipProto);
-  event->set_tcp_flags(src.tcpFlags);
 
   char ifname[IF_NAMESIZE] = {};
   if (if_indextoname(src.ifindex, ifname) == ifname) {
@@ -107,5 +253,39 @@
   }
 }
 
+NetworkPacketBundle* NetworkTraceHandler::FillWithInterning(
+    NetworkTraceState* state, const BundleKey& key, TracePacket* dst) {
+  uint64_t iid = 0;
+  bool found = false;
+
+  if (state->iids.size() < mInternLimit) {
+    auto [iter, success] = state->iids.try_emplace(key, state->iids.size() + 1);
+    iid = iter->second;
+    found = true;
+
+    if (success) {
+      // If we successfully empaced, record the newly interned data.
+      auto* packet_context = dst->set_interned_data()->add_packet_context();
+      Fill(key, packet_context->set_ctx());
+      packet_context->set_iid(iid);
+    }
+  } else {
+    auto iter = state->iids.find(key);
+    if (iter != state->iids.end()) {
+      iid = iter->second;
+      found = true;
+    }
+  }
+
+  auto* event = dst->set_network_packet_bundle();
+  if (found) {
+    event->set_iid(iid);
+  } else {
+    Fill(key, event->set_ctx());
+  }
+
+  return event;
+}
+
 }  // namespace bpf
 }  // namespace android
diff --git a/service-t/native/libs/libnetworkstats/NetworkTraceHandlerTest.cpp b/service-t/native/libs/libnetworkstats/NetworkTraceHandlerTest.cpp
new file mode 100644
index 0000000..f2c1a86
--- /dev/null
+++ b/service-t/native/libs/libnetworkstats/NetworkTraceHandlerTest.cpp
@@ -0,0 +1,395 @@
+/*
+ * Copyright (C) 2023 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 <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+#include <vector>
+
+#include "netdbpf/NetworkTraceHandler.h"
+#include "protos/perfetto/config/android/network_trace_config.gen.h"
+#include "protos/perfetto/trace/android/network_trace.pb.h"
+#include "protos/perfetto/trace/trace.pb.h"
+#include "protos/perfetto/trace/trace_packet.pb.h"
+
+namespace android {
+namespace bpf {
+using ::perfetto::protos::NetworkPacketEvent;
+using ::perfetto::protos::NetworkPacketTraceConfig;
+using ::perfetto::protos::Trace;
+using ::perfetto::protos::TracePacket;
+using ::perfetto::protos::TrafficDirection;
+
+class NetworkTraceHandlerTest : public testing::Test {
+ protected:
+  // Starts a tracing session with the handler under test.
+  std::unique_ptr<perfetto::TracingSession> StartTracing(
+      NetworkPacketTraceConfig settings) {
+    perfetto::TracingInitArgs args;
+    args.backends = perfetto::kInProcessBackend;
+    perfetto::Tracing::Initialize(args);
+
+    perfetto::DataSourceDescriptor dsd;
+    dsd.set_name("test.network_packets");
+    NetworkTraceHandler::Register(dsd, /*isTest=*/true);
+
+    perfetto::TraceConfig cfg;
+    cfg.add_buffers()->set_size_kb(1024);
+    auto* config = cfg.add_data_sources()->mutable_config();
+    config->set_name("test.network_packets");
+    config->set_network_packet_trace_config_raw(settings.SerializeAsString());
+
+    auto session = perfetto::Tracing::NewTrace(perfetto::kInProcessBackend);
+    session->Setup(cfg);
+    session->StartBlocking();
+    return session;
+  }
+
+  // Stops the trace session and reports all relevant trace packets.
+  bool StopTracing(perfetto::TracingSession* session,
+                   std::vector<TracePacket>* output) {
+    session->StopBlocking();
+
+    Trace trace;
+    std::vector<char> raw_trace = session->ReadTraceBlocking();
+    if (!trace.ParseFromArray(raw_trace.data(), raw_trace.size())) {
+      ADD_FAILURE() << "trace.ParseFromArray failed";
+      return false;
+    }
+
+    // This is a real trace and includes irrelevant trace packets such as trace
+    // metadata. The following strips the results to just the packets we want.
+    for (const auto& pkt : trace.packet()) {
+      if (pkt.has_network_packet() || pkt.has_network_packet_bundle()) {
+        output->emplace_back(pkt);
+      }
+    }
+
+    return true;
+  }
+
+  // This runs a trace with a single call to Write.
+  bool TraceAndSortPackets(const std::vector<PacketTrace>& input,
+                           std::vector<TracePacket>* output,
+                           NetworkPacketTraceConfig config = {}) {
+    auto session = StartTracing(config);
+    NetworkTraceHandler::Trace([&](NetworkTraceHandler::TraceContext ctx) {
+      ctx.GetDataSourceLocked()->Write(input, ctx);
+      ctx.Flush();
+    });
+
+    if (!StopTracing(session.get(), output)) {
+      return false;
+    }
+
+    // Sort to provide deterministic ordering regardless of Perfetto internals
+    // or implementation-defined (e.g. hash map) reshuffling.
+    std::sort(output->begin(), output->end(),
+              [](const TracePacket& a, const TracePacket& b) {
+                return a.timestamp() < b.timestamp();
+              });
+
+    return true;
+  }
+};
+
+TEST_F(NetworkTraceHandlerTest, WriteBasicFields) {
+  std::vector<PacketTrace> input = {
+      PacketTrace{
+          .timestampNs = 1000,
+          .length = 100,
+          .uid = 10,
+          .tag = 123,
+          .ipProto = 6,
+          .tcpFlags = 1,
+      },
+  };
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(TraceAndSortPackets(input, &events));
+
+  ASSERT_EQ(events.size(), 1);
+  EXPECT_THAT(events[0].timestamp(), 1000);
+  EXPECT_THAT(events[0].network_packet().uid(), 10);
+  EXPECT_THAT(events[0].network_packet().tag(), 123);
+  EXPECT_THAT(events[0].network_packet().ip_proto(), 6);
+  EXPECT_THAT(events[0].network_packet().tcp_flags(), 1);
+  EXPECT_THAT(events[0].network_packet().length(), 100);
+  EXPECT_THAT(events[0].has_sequence_flags(), false);
+}
+
+TEST_F(NetworkTraceHandlerTest, WriteDirectionAndPorts) {
+  std::vector<PacketTrace> input = {
+      PacketTrace{
+          .timestampNs = 1,
+          .sport = htons(8080),
+          .dport = htons(443),
+          .egress = true,
+      },
+      PacketTrace{
+          .timestampNs = 2,
+          .sport = htons(443),
+          .dport = htons(8080),
+          .egress = false,
+      },
+  };
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(TraceAndSortPackets(input, &events));
+
+  ASSERT_EQ(events.size(), 2);
+  EXPECT_THAT(events[0].network_packet().local_port(), 8080);
+  EXPECT_THAT(events[0].network_packet().remote_port(), 443);
+  EXPECT_THAT(events[0].network_packet().direction(),
+              TrafficDirection::DIR_EGRESS);
+  EXPECT_THAT(events[1].network_packet().local_port(), 8080);
+  EXPECT_THAT(events[1].network_packet().remote_port(), 443);
+  EXPECT_THAT(events[1].network_packet().direction(),
+              TrafficDirection::DIR_INGRESS);
+}
+
+TEST_F(NetworkTraceHandlerTest, BasicBundling) {
+  // TODO: remove this once bundling becomes default. Until then, set arbitrary
+  // aggregation threshold to enable bundling.
+  NetworkPacketTraceConfig config;
+  config.set_aggregation_threshold(10);
+
+  std::vector<PacketTrace> input = {
+      PacketTrace{.uid = 123, .timestampNs = 2, .length = 200},
+      PacketTrace{.uid = 123, .timestampNs = 1, .length = 100},
+      PacketTrace{.uid = 123, .timestampNs = 4, .length = 300},
+
+      PacketTrace{.uid = 456, .timestampNs = 2, .length = 400},
+      PacketTrace{.uid = 456, .timestampNs = 4, .length = 100},
+  };
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(TraceAndSortPackets(input, &events, config));
+
+  ASSERT_EQ(events.size(), 2);
+
+  EXPECT_THAT(events[0].timestamp(), 1);
+  EXPECT_THAT(events[0].network_packet_bundle().ctx().uid(), 123);
+  EXPECT_THAT(events[0].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(200, 100, 300));
+  EXPECT_THAT(events[0].network_packet_bundle().packet_timestamps(),
+              testing::ElementsAre(1, 0, 3));
+
+  EXPECT_THAT(events[1].timestamp(), 2);
+  EXPECT_THAT(events[1].network_packet_bundle().ctx().uid(), 456);
+  EXPECT_THAT(events[1].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(400, 100));
+  EXPECT_THAT(events[1].network_packet_bundle().packet_timestamps(),
+              testing::ElementsAre(0, 2));
+}
+
+TEST_F(NetworkTraceHandlerTest, AggregationThreshold) {
+  // With an aggregation threshold of 3, the set of packets with uid=123 will
+  // be aggregated (3>=3) whereas packets with uid=456 get per-packet info.
+  NetworkPacketTraceConfig config;
+  config.set_aggregation_threshold(3);
+
+  std::vector<PacketTrace> input = {
+      PacketTrace{.uid = 123, .timestampNs = 2, .length = 200},
+      PacketTrace{.uid = 123, .timestampNs = 1, .length = 100},
+      PacketTrace{.uid = 123, .timestampNs = 4, .length = 300},
+
+      PacketTrace{.uid = 456, .timestampNs = 2, .length = 400},
+      PacketTrace{.uid = 456, .timestampNs = 4, .length = 100},
+  };
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(TraceAndSortPackets(input, &events, config));
+
+  ASSERT_EQ(events.size(), 2);
+
+  EXPECT_EQ(events[0].timestamp(), 1);
+  EXPECT_EQ(events[0].network_packet_bundle().ctx().uid(), 123);
+  EXPECT_EQ(events[0].network_packet_bundle().total_duration(), 3);
+  EXPECT_EQ(events[0].network_packet_bundle().total_packets(), 3);
+  EXPECT_EQ(events[0].network_packet_bundle().total_length(), 600);
+
+  EXPECT_EQ(events[1].timestamp(), 2);
+  EXPECT_EQ(events[1].network_packet_bundle().ctx().uid(), 456);
+  EXPECT_THAT(events[1].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(400, 100));
+  EXPECT_THAT(events[1].network_packet_bundle().packet_timestamps(),
+              testing::ElementsAre(0, 2));
+}
+
+TEST_F(NetworkTraceHandlerTest, DropLocalPort) {
+  NetworkPacketTraceConfig config;
+  config.set_drop_local_port(true);
+  config.set_aggregation_threshold(10);
+
+  __be16 a = htons(10000);
+  __be16 b = htons(10001);
+  std::vector<PacketTrace> input = {
+      // Recall that local is `src` for egress and `dst` for ingress.
+      PacketTrace{.timestampNs = 1, .length = 2, .egress = true, .sport = a},
+      PacketTrace{.timestampNs = 2, .length = 4, .egress = false, .dport = a},
+      PacketTrace{.timestampNs = 3, .length = 6, .egress = true, .sport = b},
+      PacketTrace{.timestampNs = 4, .length = 8, .egress = false, .dport = b},
+  };
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(TraceAndSortPackets(input, &events, config));
+  ASSERT_EQ(events.size(), 2);
+
+  // Despite having different local ports, drop and bundle by remaining fields.
+  EXPECT_EQ(events[0].network_packet_bundle().ctx().direction(),
+            TrafficDirection::DIR_EGRESS);
+  EXPECT_THAT(events[0].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(2, 6));
+
+  EXPECT_EQ(events[1].network_packet_bundle().ctx().direction(),
+            TrafficDirection::DIR_INGRESS);
+  EXPECT_THAT(events[1].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(4, 8));
+
+  // Local port shouldn't be in output.
+  EXPECT_FALSE(events[0].network_packet_bundle().ctx().has_local_port());
+  EXPECT_FALSE(events[1].network_packet_bundle().ctx().has_local_port());
+}
+
+TEST_F(NetworkTraceHandlerTest, DropRemotePort) {
+  NetworkPacketTraceConfig config;
+  config.set_drop_remote_port(true);
+  config.set_aggregation_threshold(10);
+
+  __be16 a = htons(443);
+  __be16 b = htons(80);
+  std::vector<PacketTrace> input = {
+      // Recall that remote is `dst` for egress and `src` for ingress.
+      PacketTrace{.timestampNs = 1, .length = 2, .egress = true, .dport = a},
+      PacketTrace{.timestampNs = 2, .length = 4, .egress = false, .sport = a},
+      PacketTrace{.timestampNs = 3, .length = 6, .egress = true, .dport = b},
+      PacketTrace{.timestampNs = 4, .length = 8, .egress = false, .sport = b},
+  };
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(TraceAndSortPackets(input, &events, config));
+  ASSERT_EQ(events.size(), 2);
+
+  // Despite having different remote ports, drop and bundle by remaining fields.
+  EXPECT_EQ(events[0].network_packet_bundle().ctx().direction(),
+            TrafficDirection::DIR_EGRESS);
+  EXPECT_THAT(events[0].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(2, 6));
+
+  EXPECT_EQ(events[1].network_packet_bundle().ctx().direction(),
+            TrafficDirection::DIR_INGRESS);
+  EXPECT_THAT(events[1].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(4, 8));
+
+  // Remote port shouldn't be in output.
+  EXPECT_FALSE(events[0].network_packet_bundle().ctx().has_remote_port());
+  EXPECT_FALSE(events[1].network_packet_bundle().ctx().has_remote_port());
+}
+
+TEST_F(NetworkTraceHandlerTest, DropTcpFlags) {
+  NetworkPacketTraceConfig config;
+  config.set_drop_tcp_flags(true);
+  config.set_aggregation_threshold(10);
+
+  std::vector<PacketTrace> input = {
+      PacketTrace{.timestampNs = 1, .uid = 123, .length = 1, .tcpFlags = 1},
+      PacketTrace{.timestampNs = 2, .uid = 123, .length = 2, .tcpFlags = 2},
+      PacketTrace{.timestampNs = 3, .uid = 456, .length = 3, .tcpFlags = 1},
+      PacketTrace{.timestampNs = 4, .uid = 456, .length = 4, .tcpFlags = 2},
+  };
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(TraceAndSortPackets(input, &events, config));
+
+  ASSERT_EQ(events.size(), 2);
+
+  // Despite having different tcp flags, drop and bundle by remaining fields.
+  EXPECT_EQ(events[0].network_packet_bundle().ctx().uid(), 123);
+  EXPECT_THAT(events[0].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(1, 2));
+
+  EXPECT_EQ(events[1].network_packet_bundle().ctx().uid(), 456);
+  EXPECT_THAT(events[1].network_packet_bundle().packet_lengths(),
+              testing::ElementsAre(3, 4));
+
+  // Tcp flags shouldn't be in output.
+  EXPECT_FALSE(events[0].network_packet_bundle().ctx().has_tcp_flags());
+  EXPECT_FALSE(events[1].network_packet_bundle().ctx().has_tcp_flags());
+}
+
+TEST_F(NetworkTraceHandlerTest, Interning) {
+  NetworkPacketTraceConfig config;
+  config.set_intern_limit(2);
+
+  // The test writes 4 packets coming from three sources (uids). With an intern
+  // limit of 2, the first two sources should be interned. This test splits this
+  // into individual writes since internally an unordered map is used and would
+  // otherwise non-deterministically choose what to intern (this is fine for
+  // real use, but not good for test assertions).
+  std::vector<std::vector<PacketTrace>> inputs = {
+      {PacketTrace{.timestampNs = 1, .uid = 123}},
+      {PacketTrace{.timestampNs = 2, .uid = 456}},
+      {PacketTrace{.timestampNs = 3, .uid = 789}},
+      {PacketTrace{.timestampNs = 4, .uid = 123}},
+  };
+
+  auto session = StartTracing(config);
+
+  NetworkTraceHandler::Trace([&](NetworkTraceHandler::TraceContext ctx) {
+    ctx.GetDataSourceLocked()->Write(inputs[0], ctx);
+    ctx.GetDataSourceLocked()->Write(inputs[1], ctx);
+    ctx.GetDataSourceLocked()->Write(inputs[2], ctx);
+    ctx.GetDataSourceLocked()->Write(inputs[3], ctx);
+    ctx.Flush();
+  });
+
+  std::vector<TracePacket> events;
+  ASSERT_TRUE(StopTracing(session.get(), &events));
+
+  ASSERT_EQ(events.size(), 4);
+
+  // First time seen, emit new interned data, bundle uses iid instead of ctx.
+  EXPECT_EQ(events[0].network_packet_bundle().iid(), 1);
+  ASSERT_EQ(events[0].interned_data().packet_context().size(), 1);
+  EXPECT_EQ(events[0].interned_data().packet_context(0).iid(), 1);
+  EXPECT_EQ(events[0].interned_data().packet_context(0).ctx().uid(), 123);
+  EXPECT_EQ(events[0].sequence_flags(),
+            TracePacket::SEQ_INCREMENTAL_STATE_CLEARED);
+
+  // First time seen, emit new interned data, bundle uses iid instead of ctx.
+  EXPECT_EQ(events[1].network_packet_bundle().iid(), 2);
+  ASSERT_EQ(events[1].interned_data().packet_context().size(), 1);
+  EXPECT_EQ(events[1].interned_data().packet_context(0).iid(), 2);
+  EXPECT_EQ(events[1].interned_data().packet_context(0).ctx().uid(), 456);
+  EXPECT_EQ(events[1].sequence_flags(),
+            TracePacket::SEQ_NEEDS_INCREMENTAL_STATE);
+
+  // Not enough room in intern table (limit 2), inline the context.
+  EXPECT_EQ(events[2].network_packet_bundle().ctx().uid(), 789);
+  EXPECT_EQ(events[2].interned_data().packet_context().size(), 0);
+  EXPECT_EQ(events[2].sequence_flags(),
+            TracePacket::SEQ_NEEDS_INCREMENTAL_STATE);
+
+  // Second time seen, no need to re-emit interned data, only record iid.
+  EXPECT_EQ(events[3].network_packet_bundle().iid(), 1);
+  EXPECT_EQ(events[3].interned_data().packet_context().size(), 0);
+  EXPECT_EQ(events[3].sequence_flags(),
+            TracePacket::SEQ_NEEDS_INCREMENTAL_STATE);
+}
+
+}  // namespace bpf
+}  // namespace android
diff --git a/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp b/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp
index 34dbf9e..3de9897 100644
--- a/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp
+++ b/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp
@@ -99,6 +99,15 @@
     ALOGW("Failed to disable tracing: %s", res.error().message().c_str());
   }
 
+  // Make sure everything in the system has actually seen the 'false' we just
+  // wrote, things should now be well and truly disabled.
+  synchronizeKernelRCU();
+
+  // Drain remaining events from the ring buffer now that tracing is disabled.
+  // This prevents the next trace from seeing stale events and allows writing
+  // the last batch of events to Perfetto.
+  ConsumeAllLocked();
+
   mTaskRunner.reset();
   mRingBuffer.reset();
 
@@ -116,12 +125,16 @@
     return false;
   }
 
-  base::Result<int> ret = mRingBuffer->ConsumeAll(mCallback);
+  std::vector<PacketTrace> packets;
+  base::Result<int> ret = mRingBuffer->ConsumeAll(
+      [&](const PacketTrace& pkt) { packets.push_back(pkt); });
   if (!ret.ok()) {
     ALOGW("Failed to poll ringbuf: %s", ret.error().message().c_str());
     return false;
   }
 
+  mCallback(packets);
+
   return true;
 }
 
diff --git a/service-t/native/libs/libnetworkstats/NetworkTracePollerTest.cpp b/service-t/native/libs/libnetworkstats/NetworkTracePollerTest.cpp
index 28ec208..df07bbe 100644
--- a/service-t/native/libs/libnetworkstats/NetworkTracePollerTest.cpp
+++ b/service-t/native/libs/libnetworkstats/NetworkTracePollerTest.cpp
@@ -26,6 +26,8 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include <chrono>
+#include <thread>
 #include <vector>
 
 #include "netdbpf/NetworkTracePoller.h"
@@ -100,7 +102,7 @@
 };
 
 TEST_F(NetworkTracePollerTest, PollWhileInactive) {
-  NetworkTracePoller handler([&](const PacketTrace& pkt) {});
+  NetworkTracePoller handler([&](const std::vector<PacketTrace>& pkt) {});
 
   // One succeed after start and before stop.
   EXPECT_FALSE(handler.ConsumeAll());
@@ -113,7 +115,7 @@
 TEST_F(NetworkTracePollerTest, ConcurrentSessions) {
   // Simulate two concurrent sessions (two starts followed by two stops). Check
   // that tracing is stopped only after both sessions finish.
-  NetworkTracePoller handler([&](const PacketTrace& pkt) {});
+  NetworkTracePoller handler([&](const std::vector<PacketTrace>& pkt) {});
 
   ASSERT_TRUE(handler.Start(kNeverPoll));
   EXPECT_TRUE(handler.ConsumeAll());
@@ -130,15 +132,22 @@
 
 TEST_F(NetworkTracePollerTest, TraceTcpSession) {
   __be16 server_port = 0;
-  std::vector<PacketTrace> packets;
+  std::vector<PacketTrace> packets, unmatched;
 
   // Record all packets with the bound address and current uid. This callback is
   // involked only within ConsumeAll, at which point the port should have
   // already been filled in and all packets have been processed.
-  NetworkTracePoller handler([&](const PacketTrace& pkt) {
-    if (pkt.sport != server_port && pkt.dport != server_port) return;
-    if (pkt.uid != getuid()) return;
-    packets.push_back(pkt);
+  NetworkTracePoller handler([&](const std::vector<PacketTrace>& pkts) {
+    for (const PacketTrace& pkt : pkts) {
+      if ((pkt.sport == server_port || pkt.dport == server_port) &&
+          pkt.uid == getuid()) {
+        packets.push_back(pkt);
+      } else {
+        // There may be spurious packets not caused by the test. These are only
+        // captured so that we can report them to help debug certain errors.
+        unmatched.push_back(pkt);
+      }
+    }
   });
 
   ASSERT_TRUE(handler.Start(kNeverPoll));
@@ -177,7 +186,13 @@
     EXPECT_EQ(std::string(data), std::string(buff));
   }
 
-  ASSERT_TRUE(handler.ConsumeAll());
+  // Poll until we get all the packets (typically we get it first try).
+  for (int attempt = 0; attempt < 10; attempt++) {
+    ASSERT_TRUE(handler.ConsumeAll());
+    if (packets.size() >= 12) break;
+    std::this_thread::sleep_for(std::chrono::milliseconds(5));
+  }
+
   ASSERT_TRUE(handler.Stop());
 
   // There are 12 packets in total (6 messages: each seen by client & server):
@@ -187,7 +202,9 @@
   // 4. Client sends data with psh ack
   // 5. Server acks the data packet
   // 6. Client closes connection with fin ack
-  ASSERT_EQ(packets.size(), 12) << PacketPrinter{packets};
+  ASSERT_EQ(packets.size(), 12)
+      << PacketPrinter{packets}
+      << "\nUnmatched packets: " << PacketPrinter{unmatched};
 
   // All packets should be TCP packets.
   EXPECT_THAT(packets, Each(Field(&PacketTrace::ipProto, Eq(IPPROTO_TCP))));
diff --git a/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTraceHandler.h b/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTraceHandler.h
index 1266237..bc10e68 100644
--- a/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTraceHandler.h
+++ b/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTraceHandler.h
@@ -30,10 +30,39 @@
 namespace android {
 namespace bpf {
 
+// BundleKeys are PacketTraces where timestamp and length are ignored.
+using BundleKey = PacketTrace;
+
+// BundleKeys are hashed using all fields except timestamp/length.
+struct BundleHash {
+  std::size_t operator()(const BundleKey& a) const;
+};
+
+// BundleKeys are equal if all fields except timestamp/length are equal.
+struct BundleEq {
+  bool operator()(const BundleKey& a, const BundleKey& b) const;
+};
+
+// Track the bundles we've interned and their corresponding intern id (iid). We
+// use IncrementalState (rather than state in the Handler) so that we stay in
+// sync with Perfetto's periodic state clearing (which helps recover from packet
+// loss). When state is cleared, the state object is replaced with a new default
+// constructed instance.
+struct NetworkTraceState {
+  bool cleared = true;
+  std::unordered_map<BundleKey, uint64_t, BundleHash, BundleEq> iids;
+};
+
+// Inject our custom incremental state type using type traits.
+struct NetworkTraceTraits : public perfetto::DefaultDataSourceTraits {
+  using IncrementalStateType = NetworkTraceState;
+};
+
 // NetworkTraceHandler implements the android.network_packets data source. This
 // class is registered with Perfetto and is instantiated when tracing starts and
 // destroyed when tracing ends. There is one instance per trace session.
-class NetworkTraceHandler : public perfetto::DataSource<NetworkTraceHandler> {
+class NetworkTraceHandler
+    : public perfetto::DataSource<NetworkTraceHandler, NetworkTraceTraits> {
  public:
   // Registers this DataSource.
   static void RegisterDataSource();
@@ -41,19 +70,40 @@
   // Connects to the system Perfetto daemon and registers the trace handler.
   static void InitPerfettoTracing();
 
+  // When isTest is true, skip non-hermetic code.
+  NetworkTraceHandler(bool isTest = false) : mIsTest(isTest) {}
+
   // perfetto::DataSource overrides:
   void OnSetup(const SetupArgs& args) override;
   void OnStart(const StartArgs&) override;
   void OnStop(const StopArgs&) override;
 
+  // Writes the packets as Perfetto TracePackets, creating packets as needed
+  // using the provided callback (which allows easy testing).
+  void Write(const std::vector<PacketTrace>& packets,
+             NetworkTraceHandler::TraceContext& ctx);
+
  private:
   // Convert a PacketTrace into a Perfetto trace packet.
-  static void Fill(const PacketTrace& src,
-                   ::perfetto::protos::pbzero::TracePacket& dst);
+  void Fill(const PacketTrace& src,
+            ::perfetto::protos::pbzero::NetworkPacketEvent* event);
+
+  // Fills in contextual information either inline or via interning.
+  ::perfetto::protos::pbzero::NetworkPacketBundle* FillWithInterning(
+      NetworkTraceState* state, const BundleKey& key,
+      ::perfetto::protos::pbzero::TracePacket* dst);
 
   static internal::NetworkTracePoller sPoller;
-  uint32_t mPollMs;
   bool mStarted;
+  bool mIsTest;
+
+  // Values from config, see proto for details.
+  uint32_t mPollMs;
+  uint32_t mInternLimit;
+  uint32_t mAggregationThreshold;
+  bool mDropLocalPort;
+  bool mDropRemotePort;
+  bool mDropTcpFlags;
 };
 
 }  // namespace bpf
diff --git a/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTracePoller.h b/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTracePoller.h
index b0189a7..adde51e 100644
--- a/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTracePoller.h
+++ b/service-t/native/libs/libnetworkstats/include/netdbpf/NetworkTracePoller.h
@@ -38,9 +38,10 @@
 // it is not meant to be used elsewhere.
 class NetworkTracePoller {
  public:
+  using EventSink = std::function<void(const std::vector<PacketTrace>&)>;
+
   // Testonly: initialize with a callback capable of intercepting data.
-  NetworkTracePoller(std::function<void(const PacketTrace&)> callback)
-      : mCallback(std::move(callback)) {}
+  NetworkTracePoller(EventSink callback) : mCallback(std::move(callback)) {}
 
   // Starts tracing with the given poll interval.
   bool Start(uint32_t pollMs) EXCLUDES(mMutex);
@@ -67,7 +68,7 @@
   uint32_t mPollMs GUARDED_BY(mMutex);
 
   // The function to process PacketTrace, typically a Perfetto sink.
-  std::function<void(const PacketTrace&)> mCallback GUARDED_BY(mMutex);
+  EventSink mCallback GUARDED_BY(mMutex);
 
   // The BPF ring buffer handle.
   std::unique_ptr<BpfRingbuf<PacketTrace>> mRingBuffer GUARDED_BY(mMutex);
diff --git a/service-t/src/com/android/server/NsdService.java b/service-t/src/com/android/server/NsdService.java
index c92e9a9..a658791 100644
--- a/service-t/src/com/android/server/NsdService.java
+++ b/service-t/src/com/android/server/NsdService.java
@@ -53,7 +53,6 @@
 import android.os.UserHandle;
 import android.text.TextUtils;
 import android.util.Log;
-import android.util.Pair;
 import android.util.SparseArray;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -73,6 +72,7 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.SocketException;
@@ -397,13 +397,12 @@
                 final int clientId = msg.arg2;
                 switch (msg.what) {
                     case NsdManager.REGISTER_CLIENT:
-                        final Pair<NsdServiceConnector, INsdManagerCallback> arg =
-                                (Pair<NsdServiceConnector, INsdManagerCallback>) msg.obj;
-                        final INsdManagerCallback cb = arg.second;
+                        final ConnectorArgs arg = (ConnectorArgs) msg.obj;
+                        final INsdManagerCallback cb = arg.callback;
                         try {
-                            cb.asBinder().linkToDeath(arg.first, 0);
-                            cInfo = new ClientInfo(cb);
-                            mClients.put(arg.first, cInfo);
+                            cb.asBinder().linkToDeath(arg.connector, 0);
+                            cInfo = new ClientInfo(cb, arg.useJavaBackend);
+                            mClients.put(arg.connector, cInfo);
                         } catch (RemoteException e) {
                             Log.w(TAG, "Client " + clientId + " has already died");
                         }
@@ -608,7 +607,8 @@
                         final NsdServiceInfo info = args.serviceInfo;
                         id = getUniqueId();
                         final String serviceType = constructServiceType(info.getServiceType());
-                        if (mDeps.isMdnsDiscoveryManagerEnabled(mContext)
+                        if (clientInfo.mUseJavaBackend
+                                || mDeps.isMdnsDiscoveryManagerEnabled(mContext)
                                 || useDiscoveryManagerForType(serviceType)) {
                             if (serviceType == null) {
                                 clientInfo.onDiscoverServicesFailed(clientId,
@@ -702,7 +702,8 @@
                         final NsdServiceInfo serviceInfo = args.serviceInfo;
                         final String serviceType = serviceInfo.getServiceType();
                         final String registerServiceType = constructServiceType(serviceType);
-                        if (mDeps.isMdnsAdvertiserEnabled(mContext)
+                        if (clientInfo.mUseJavaBackend
+                                || mDeps.isMdnsAdvertiserEnabled(mContext)
                                 || useAdvertiserForType(registerServiceType)) {
                             if (registerServiceType == null) {
                                 Log.e(TAG, "Invalid service type: " + serviceType);
@@ -782,7 +783,8 @@
                         final NsdServiceInfo info = args.serviceInfo;
                         id = getUniqueId();
                         final String serviceType = constructServiceType(info.getServiceType());
-                        if (mDeps.isMdnsDiscoveryManagerEnabled(mContext)
+                        if (clientInfo.mUseJavaBackend
+                                ||  mDeps.isMdnsDiscoveryManagerEnabled(mContext)
                                 || useDiscoveryManagerForType(serviceType)) {
                             if (serviceType == null) {
                                 clientInfo.onResolveServiceFailed(clientId,
@@ -1104,9 +1106,12 @@
                 final String serviceName = serviceInfo.getServiceInstanceName();
                 final NsdServiceInfo servInfo = new NsdServiceInfo(serviceName, serviceType);
                 final Network network = serviceInfo.getNetwork();
+                // In MdnsDiscoveryManagerEvent, the Network can be null which means it is a
+                // network for Tethering interface. In other words, the network == null means the
+                // network has netId = INetd.LOCAL_NET_ID.
                 setServiceNetworkForCallback(
                         servInfo,
-                        network == null ? NETID_UNSET : network.netId,
+                        network == null ? INetd.LOCAL_NET_ID : network.netId,
                         serviceInfo.getInterfaceIndex());
                 return servInfo;
             }
@@ -1154,22 +1159,7 @@
                                 Log.e(TAG, "Invalid attribute", e);
                             }
                         }
-                        final List<InetAddress> addresses = new ArrayList<>();
-                        for (String ipv4Address : serviceInfo.getIpv4Addresses()) {
-                            try {
-                                addresses.add(InetAddresses.parseNumericAddress(ipv4Address));
-                            } catch (IllegalArgumentException e) {
-                                Log.wtf(TAG, "Invalid ipv4 address", e);
-                            }
-                        }
-                        for (String ipv6Address : serviceInfo.getIpv6Addresses()) {
-                            try {
-                                addresses.add(InetAddresses.parseNumericAddress(ipv6Address));
-                            } catch (IllegalArgumentException e) {
-                                Log.wtf(TAG, "Invalid ipv6 address", e);
-                            }
-                        }
-
+                        final List<InetAddress> addresses = getInetAddresses(serviceInfo);
                         if (addresses.size() != 0) {
                             info.setHostAddresses(addresses);
                             clientInfo.onResolveServiceSucceeded(clientId, info);
@@ -1201,21 +1191,7 @@
                             }
                         }
 
-                        final List<InetAddress> addresses = new ArrayList<>();
-                        for (String ipv4Address : serviceInfo.getIpv4Addresses()) {
-                            try {
-                                addresses.add(InetAddresses.parseNumericAddress(ipv4Address));
-                            } catch (IllegalArgumentException e) {
-                                Log.wtf(TAG, "Invalid ipv4 address", e);
-                            }
-                        }
-                        for (String ipv6Address : serviceInfo.getIpv6Addresses()) {
-                            try {
-                                addresses.add(InetAddresses.parseNumericAddress(ipv6Address));
-                            } catch (IllegalArgumentException e) {
-                                Log.wtf(TAG, "Invalid ipv6 address", e);
-                            }
-                        }
+                        final List<InetAddress> addresses = getInetAddresses(serviceInfo);
                         info.setHostAddresses(addresses);
                         clientInfo.onServiceUpdated(clientId, info);
                         break;
@@ -1231,6 +1207,36 @@
        }
     }
 
+    @NonNull
+    private static List<InetAddress> getInetAddresses(@NonNull MdnsServiceInfo serviceInfo) {
+        final List<String> v4Addrs = serviceInfo.getIpv4Addresses();
+        final List<String> v6Addrs = serviceInfo.getIpv6Addresses();
+        final List<InetAddress> addresses = new ArrayList<>(v4Addrs.size() + v6Addrs.size());
+        for (String ipv4Address : v4Addrs) {
+            try {
+                addresses.add(InetAddresses.parseNumericAddress(ipv4Address));
+            } catch (IllegalArgumentException e) {
+                Log.wtf(TAG, "Invalid ipv4 address", e);
+            }
+        }
+        for (String ipv6Address : v6Addrs) {
+            try {
+                final InetAddress addr = InetAddresses.parseNumericAddress(ipv6Address);
+                if (addr.isLinkLocalAddress()) {
+                    final Inet6Address v6Addr = Inet6Address.getByAddress(
+                            null /* host */, addr.getAddress(),
+                            serviceInfo.getInterfaceIndex());
+                    addresses.add(v6Addr);
+                } else {
+                    addresses.add(addr);
+                }
+            } catch (IllegalArgumentException | UnknownHostException e) {
+                Log.wtf(TAG, "Invalid ipv6 address", e);
+            }
+        }
+        return addresses;
+    }
+
     private static void setServiceNetworkForCallback(NsdServiceInfo info, int netId, int ifaceIdx) {
         switch (netId) {
             case NETID_UNSET:
@@ -1532,12 +1538,27 @@
         }
     }
 
+    private static class ConnectorArgs {
+        @NonNull public final NsdServiceConnector connector;
+        @NonNull public final INsdManagerCallback callback;
+        public final boolean useJavaBackend;
+
+        ConnectorArgs(@NonNull NsdServiceConnector connector, @NonNull INsdManagerCallback callback,
+                boolean useJavaBackend) {
+            this.connector = connector;
+            this.callback = callback;
+            this.useJavaBackend = useJavaBackend;
+        }
+    }
+
     @Override
-    public INsdServiceConnector connect(INsdManagerCallback cb) {
+    public INsdServiceConnector connect(INsdManagerCallback cb, boolean useJavaBackend) {
         mContext.enforceCallingOrSelfPermission(android.Manifest.permission.INTERNET, "NsdService");
+        if (DBG) Log.d(TAG, "New client connect. useJavaBackend=" + useJavaBackend);
         final INsdServiceConnector connector = new NsdServiceConnector();
         mNsdStateMachine.sendMessage(mNsdStateMachine.obtainMessage(
-                NsdManager.REGISTER_CLIENT, new Pair<>(connector, cb)));
+                NsdManager.REGISTER_CLIENT,
+                new ConnectorArgs((NsdServiceConnector) connector, cb, useJavaBackend)));
         return connector;
     }
 
@@ -1793,9 +1814,12 @@
 
         // The target SDK of this client < Build.VERSION_CODES.S
         private boolean mIsPreSClient = false;
+        // The flag of using java backend if the client's target SDK >= U
+        private final boolean mUseJavaBackend;
 
-        private ClientInfo(INsdManagerCallback cb) {
+        private ClientInfo(INsdManagerCallback cb, boolean useJavaBackend) {
             mCb = cb;
+            mUseJavaBackend = useJavaBackend;
             if (DBG) Log.d(TAG, "New client");
         }
 
diff --git a/service-t/src/com/android/server/connectivity/mdns/ISocketNetLinkMonitor.java b/service-t/src/com/android/server/connectivity/mdns/ISocketNetLinkMonitor.java
new file mode 100644
index 0000000..ef3928c
--- /dev/null
+++ b/service-t/src/com/android/server/connectivity/mdns/ISocketNetLinkMonitor.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2022 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.mdns;
+
+/**
+ * The interface for netlink monitor.
+ */
+public interface ISocketNetLinkMonitor {
+
+    /**
+     * Returns if the netlink monitor is supported or not. By default, it is not supported.
+     */
+    default boolean isSupported() {
+        return false;
+    }
+
+    /**
+     * Starts the monitor.
+     */
+    default void startMonitoring() {
+    }
+
+    /**
+     * Stops the monitor.
+     */
+    default void stopMonitoring() {
+    }
+}
diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsInterfaceSocket.java b/service-t/src/com/android/server/connectivity/mdns/MdnsInterfaceSocket.java
index 119c7a8..31627f8 100644
--- a/service-t/src/com/android/server/connectivity/mdns/MdnsInterfaceSocket.java
+++ b/service-t/src/com/android/server/connectivity/mdns/MdnsInterfaceSocket.java
@@ -78,7 +78,7 @@
         }
 
         mPacketReader = new MulticastPacketReader(networkInterface.getName(), mFileDescriptor,
-                new Handler(looper), packetReadBuffer);
+                new Handler(looper), packetReadBuffer, port);
         mPacketReader.start();
     }
 
diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsMultinetworkSocketClient.java b/service-t/src/com/android/server/connectivity/mdns/MdnsMultinetworkSocketClient.java
index 5254342..7af2231 100644
--- a/service-t/src/com/android/server/connectivity/mdns/MdnsMultinetworkSocketClient.java
+++ b/service-t/src/com/android/server/connectivity/mdns/MdnsMultinetworkSocketClient.java
@@ -70,7 +70,7 @@
         }
 
         @Override
-        public void onSocketCreated(@NonNull Network network,
+        public void onSocketCreated(@Nullable Network network,
                 @NonNull MdnsInterfaceSocket socket, @NonNull List<LinkAddress> addresses) {
             // The socket may be already created by other request before, try to get the stored
             // ReadPacketHandler.
@@ -86,7 +86,7 @@
         }
 
         @Override
-        public void onInterfaceDestroyed(@NonNull Network network,
+        public void onInterfaceDestroyed(@Nullable Network network,
                 @NonNull MdnsInterfaceSocket socket) {
             mSocketPacketHandlers.remove(socket);
             mActiveNetworkSockets.remove(socket);
diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsResponse.java b/service-t/src/com/android/server/connectivity/mdns/MdnsResponse.java
index be2555b..e0100f6 100644
--- a/service-t/src/com/android/server/connectivity/mdns/MdnsResponse.java
+++ b/service-t/src/com/android/server/connectivity/mdns/MdnsResponse.java
@@ -81,6 +81,21 @@
         return a == null || a.getTtl() == b.getTtl();
     }
 
+    private <T extends MdnsRecord> boolean addOrReplaceRecord(@NonNull T record,
+            @NonNull List<T> recordsList) {
+        final int existing = recordsList.indexOf(record);
+        if (existing >= 0) {
+            if (recordsAreSame(record, recordsList.get(existing))) {
+                return false;
+            }
+            final MdnsRecord existedRecord = recordsList.remove(existing);
+            records.remove(existedRecord);
+        }
+        recordsList.add(record);
+        records.add(record);
+        return true;
+    }
+
     /**
      * Adds a pointer record.
      *
@@ -92,17 +107,7 @@
             throw new IllegalArgumentException(
                     "Pointer records for different service names cannot be added");
         }
-        final int existing = pointerRecords.indexOf(pointerRecord);
-        if (existing >= 0) {
-            if (recordsAreSame(pointerRecord, pointerRecords.get(existing))) {
-                return false;
-            }
-            final MdnsRecord record = pointerRecords.remove(existing);
-            records.remove(record);
-        }
-        pointerRecords.add(pointerRecord);
-        records.add(pointerRecord);
-        return true;
+        return addOrReplaceRecord(pointerRecord, pointerRecords);
     }
 
     /** Gets the pointer records. */
@@ -207,17 +212,7 @@
     /** Add the IPv4 address record. */
     public synchronized boolean addInet4AddressRecord(
             @NonNull MdnsInetAddressRecord newInet4AddressRecord) {
-        final int existing = inet4AddressRecords.indexOf(newInet4AddressRecord);
-        if (existing >= 0) {
-            if (recordsAreSame(newInet4AddressRecord, inet4AddressRecords.get(existing))) {
-                return false;
-            }
-            final MdnsRecord record = inet4AddressRecords.remove(existing);
-            records.remove(record);
-        }
-        inet4AddressRecords.add(newInet4AddressRecord);
-        records.add(newInet4AddressRecord);
-        return true;
+        return addOrReplaceRecord(newInet4AddressRecord, inet4AddressRecords);
     }
 
     /** Gets the IPv4 address records. */
@@ -248,17 +243,7 @@
     /** Sets the IPv6 address records. */
     public synchronized boolean addInet6AddressRecord(
             @NonNull MdnsInetAddressRecord newInet6AddressRecord) {
-        final int existing = inet6AddressRecords.indexOf(newInet6AddressRecord);
-        if (existing >= 0) {
-            if (recordsAreSame(newInet6AddressRecord, inet6AddressRecords.get(existing))) {
-                return false;
-            }
-            final MdnsRecord record = inet6AddressRecords.remove(existing);
-            records.remove(record);
-        }
-        inet6AddressRecords.add(newInet6AddressRecord);
-        records.add(newInet6AddressRecord);
-        return true;
+        return addOrReplaceRecord(newInet6AddressRecord, inet6AddressRecords);
     }
 
     /**
diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsResponseDecoder.java b/service-t/src/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
index 0151202..129db7e 100644
--- a/service-t/src/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
+++ b/service-t/src/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
@@ -220,9 +220,10 @@
                         // This bit, the cache-flush bit, tells neighboring hosts
                         // that this is not a shared record type.  Instead of merging this new
                         // record additively into the cache in addition to any previous records with
-                        // the same name, rrtype, and rrclass, all old records with that name,
-                        // rrtype, and rrclass that were received more than one second ago are
-                        // declared invalid, and marked to expire from the cache in one second.
+                        // the same name, rrtype, and rrclass.
+                        // TODO: All old records with that name, rrtype, and rrclass that were
+                        //       received more than one second ago are declared invalid, and marked
+                        //       to expire from the cache in one second.
                         if (inetRecord.getCacheFlush()) {
                             response.clearInet4AddressRecords();
                             response.clearInet6AddressRecords();
@@ -236,9 +237,10 @@
                         // This bit, the cache-flush bit, tells neighboring hosts
                         // that this is not a shared record type.  Instead of merging this new
                         // record additively into the cache in addition to any previous records with
-                        // the same name, rrtype, and rrclass, all old records with that name,
-                        // rrtype, and rrclass that were received more than one second ago are
-                        // declared invalid, and marked to expire from the cache in one second.
+                        // the same name, rrtype, and rrclass.
+                        // TODO: All old records with that name, rrtype, and rrclass that were
+                        //       received more than one second ago are declared invalid, and marked
+                        //       to expire from the cache in one second.
                         if (inetRecord.getCacheFlush()) {
                             response.clearInet4AddressRecords();
                             response.clearInet6AddressRecords();
diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java b/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java
index 743f946..2823f92 100644
--- a/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java
+++ b/service-t/src/com/android/server/connectivity/mdns/MdnsSocketProvider.java
@@ -21,7 +21,6 @@
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.ConnectivityManager.NetworkCallback;
-import android.net.INetd;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
 import android.net.Network;
@@ -30,16 +29,12 @@
 import android.net.TetheringManager.TetheringEventCallback;
 import android.os.Handler;
 import android.os.Looper;
-import android.system.OsConstants;
 import android.util.ArrayMap;
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.net.module.util.CollectionUtils;
 import com.android.net.module.util.LinkPropertiesUtils.CompareResult;
-import com.android.net.module.util.ip.NetlinkMonitor;
-import com.android.net.module.util.netlink.NetlinkConstants;
-import com.android.net.module.util.netlink.NetlinkMessage;
 import com.android.server.connectivity.mdns.util.MdnsLogger;
 
 import java.io.IOException;
@@ -71,7 +66,7 @@
     @NonNull private final Dependencies mDependencies;
     @NonNull private final NetworkCallback mNetworkCallback;
     @NonNull private final TetheringEventCallback mTetheringEventCallback;
-    @NonNull private final NetlinkMonitor mNetlinkMonitor;
+    @NonNull private final ISocketNetLinkMonitor mSocketNetlinkMonitor;
     private final ArrayMap<Network, SocketInfo> mNetworkSockets = new ArrayMap<>();
     private final ArrayMap<String, SocketInfo> mTetherInterfaceSockets = new ArrayMap<>();
     private final ArrayMap<Network, LinkProperties> mActiveNetworksLinkProperties =
@@ -98,7 +93,7 @@
             @Override
             public void onLost(Network network) {
                 mActiveNetworksLinkProperties.remove(network);
-                removeSocket(network, null /* interfaceName */);
+                removeNetworkSocket(network);
             }
 
             @Override
@@ -118,7 +113,8 @@
             }
         };
 
-        mNetlinkMonitor = new SocketNetlinkMonitor(mHandler);
+        mSocketNetlinkMonitor = SocketNetLinkMonitorFactory.createNetLinkMonitor(mHandler,
+                LOGGER.mLog);
     }
 
     /**
@@ -157,18 +153,6 @@
         }
     }
 
-    private static class SocketNetlinkMonitor extends NetlinkMonitor {
-        SocketNetlinkMonitor(Handler handler) {
-            super(handler, LOGGER.mLog, TAG, OsConstants.NETLINK_ROUTE,
-                    NetlinkConstants.RTMGRP_IPV4_IFADDR | NetlinkConstants.RTMGRP_IPV6_IFADDR);
-        }
-
-        @Override
-        public void processNetlinkMessage(NetlinkMessage nlMsg, long whenMs) {
-            // TODO: Handle netlink message.
-        }
-    }
-
     /*** Ensure that current running thread is same as given handler thread */
     public static void ensureRunningOnHandlerThread(Handler handler) {
         if (handler.getLooper().getThread() != Thread.currentThread()) {
@@ -193,7 +177,9 @@
         final TetheringManager tetheringManager = mContext.getSystemService(TetheringManager.class);
         tetheringManager.registerTetheringEventCallback(mHandler::post, mTetheringEventCallback);
 
-        mHandler.post(mNetlinkMonitor::start);
+        if (mSocketNetlinkMonitor.isSupported()) {
+            mHandler.post(mSocketNetlinkMonitor::startMonitoring);
+        }
         mMonitoringSockets = true;
     }
 
@@ -210,7 +196,15 @@
                     TetheringManager.class);
             tetheringManager.unregisterTetheringEventCallback(mTetheringEventCallback);
 
-            mHandler.post(mNetlinkMonitor::stop);
+            if (mSocketNetlinkMonitor.isSupported()) {
+                mHandler.post(mSocketNetlinkMonitor::stopMonitoring);
+            }
+            // Clear all saved status.
+            mActiveNetworksLinkProperties.clear();
+            mNetworkSockets.clear();
+            mTetherInterfaceSockets.clear();
+            mLocalOnlyInterfaces.clear();
+            mTetheredInterfaces.clear();
             mMonitoringSockets = false;
         }
     }
@@ -229,7 +223,7 @@
 
     /*** Check whether the target network is matched current network */
     public static boolean isNetworkMatched(@Nullable Network targetNetwork,
-            @NonNull Network currentNetwork) {
+            @Nullable Network currentNetwork) {
         return targetNetwork == null || targetNetwork.equals(currentNetwork);
     }
 
@@ -252,9 +246,10 @@
             return;
         }
 
+        final NetworkAsKey networkKey = new NetworkAsKey(network);
         final SocketInfo socketInfo = mNetworkSockets.get(network);
         if (socketInfo == null) {
-            createSocket(network, lp);
+            createSocket(networkKey, lp);
         } else {
             // Update the addresses of this socket.
             final List<LinkAddress> addresses = lp.getLinkAddresses();
@@ -289,16 +284,16 @@
         final CompareResult<String> interfaceDiff = new CompareResult<>(
                 current, updated);
         for (String name : interfaceDiff.added) {
-            createSocket(new Network(INetd.LOCAL_NET_ID), createLPForTetheredInterface(name));
+            createSocket(LOCAL_NET, createLPForTetheredInterface(name));
         }
         for (String name : interfaceDiff.removed) {
-            removeSocket(new Network(INetd.LOCAL_NET_ID), name);
+            removeTetherInterfaceSocket(name);
         }
         current.clear();
         current.addAll(updated);
     }
 
-    private void createSocket(Network network, LinkProperties lp) {
+    private void createSocket(NetworkKey networkKey, LinkProperties lp) {
         final String interfaceName = lp.getInterfaceName();
         if (interfaceName == null) {
             Log.e(TAG, "Can not create socket with null interface name.");
@@ -313,41 +308,52 @@
             }
 
             if (DBG) {
-                Log.d(TAG, "Create a socket on network:" + network
+                Log.d(TAG, "Create a socket on network:" + networkKey
                         + " with interfaceName:" + interfaceName);
             }
             final MdnsInterfaceSocket socket = mDependencies.createMdnsInterfaceSocket(
                     networkInterface.getNetworkInterface(), MdnsConstants.MDNS_PORT, mLooper,
                     mPacketReadBuffer);
             final List<LinkAddress> addresses;
-            if (network.netId == INetd.LOCAL_NET_ID) {
+            if (networkKey == LOCAL_NET) {
                 addresses = CollectionUtils.map(
-                        networkInterface.getInterfaceAddresses(), LinkAddress::new);
+                        networkInterface.getInterfaceAddresses(),
+                        i -> new LinkAddress(i.getAddress(), i.getNetworkPrefixLength()));
                 mTetherInterfaceSockets.put(interfaceName, new SocketInfo(socket, addresses));
             } else {
                 addresses = lp.getLinkAddresses();
-                mNetworkSockets.put(network, new SocketInfo(socket, addresses));
+                mNetworkSockets.put(((NetworkAsKey) networkKey).mNetwork,
+                        new SocketInfo(socket, addresses));
             }
             // Try to join IPv4/IPv6 group.
             socket.joinGroup(addresses);
 
             // Notify the listeners which need this socket.
-            notifySocketCreated(network, socket, addresses);
+            if (networkKey == LOCAL_NET) {
+                notifySocketCreated(null /* network */, socket, addresses);
+            } else {
+                notifySocketCreated(((NetworkAsKey) networkKey).mNetwork, socket, addresses);
+            }
         } catch (IOException e) {
             Log.e(TAG, "Create a socket failed with interface=" + interfaceName, e);
         }
     }
 
-    private void removeSocket(Network network, String interfaceName) {
-        final SocketInfo socketInfo = network.netId == INetd.LOCAL_NET_ID
-                ? mTetherInterfaceSockets.remove(interfaceName)
-                : mNetworkSockets.remove(network);
+    private void removeNetworkSocket(Network network) {
+        final SocketInfo socketInfo = mNetworkSockets.remove(network);
         if (socketInfo == null) return;
 
         socketInfo.mSocket.destroy();
         notifyInterfaceDestroyed(network, socketInfo.mSocket);
     }
 
+    private void removeTetherInterfaceSocket(String interfaceName) {
+        final SocketInfo socketInfo = mTetherInterfaceSockets.remove(interfaceName);
+        if (socketInfo == null) return;
+        socketInfo.mSocket.destroy();
+        notifyInterfaceDestroyed(null /* network */, socketInfo.mSocket);
+    }
+
     private void notifySocketCreated(Network network, MdnsInterfaceSocket socket,
             List<LinkAddress> addresses) {
         for (int i = 0; i < mCallbacksToRequestedNetworks.size(); i++) {
@@ -387,7 +393,7 @@
                 if (DBG) Log.d(TAG, "There is no LinkProperties for this network:" + network);
                 return;
             }
-            createSocket(network, lp);
+            createSocket(new NetworkAsKey(network), lp);
         } else {
             // Notify the socket for requested network.
             cb.onSocketCreated(network, socketInfo.mSocket, socketInfo.mAddresses);
@@ -397,12 +403,11 @@
     private void retrieveAndNotifySocketFromInterface(String interfaceName, SocketCallback cb) {
         final SocketInfo socketInfo = mTetherInterfaceSockets.get(interfaceName);
         if (socketInfo == null) {
-            createSocket(
-                    new Network(INetd.LOCAL_NET_ID), createLPForTetheredInterface(interfaceName));
+            createSocket(LOCAL_NET, createLPForTetheredInterface(interfaceName));
         } else {
             // Notify the socket for requested network.
             cb.onSocketCreated(
-                    new Network(INetd.LOCAL_NET_ID), socketInfo.mSocket, socketInfo.mAddresses);
+                    null /* network */, socketInfo.mSocket, socketInfo.mAddresses);
         }
     }
 
@@ -461,7 +466,7 @@
             final SocketInfo info = mTetherInterfaceSockets.valueAt(i);
             info.mSocket.destroy();
             // Still notify to unrequester for socket destroy.
-            cb.onInterfaceDestroyed(new Network(INetd.LOCAL_NET_ID), info.mSocket);
+            cb.onInterfaceDestroyed(null /* network */, info.mSocket);
         }
         mTetherInterfaceSockets.clear();
 
@@ -472,13 +477,49 @@
     /*** Callbacks for listening socket changes */
     public interface SocketCallback {
         /*** Notify the socket is created */
-        default void onSocketCreated(@NonNull Network network, @NonNull MdnsInterfaceSocket socket,
+        default void onSocketCreated(@Nullable Network network, @NonNull MdnsInterfaceSocket socket,
                 @NonNull List<LinkAddress> addresses) {}
         /*** Notify the interface is destroyed */
-        default void onInterfaceDestroyed(@NonNull Network network,
+        default void onInterfaceDestroyed(@Nullable Network network,
                 @NonNull MdnsInterfaceSocket socket) {}
         /*** Notify the addresses is changed on the network */
-        default void onAddressesChanged(@NonNull Network network,
+        default void onAddressesChanged(@Nullable Network network,
                 @NonNull MdnsInterfaceSocket socket, @NonNull List<LinkAddress> addresses) {}
     }
+
+    private interface NetworkKey {
+    }
+
+    private static final NetworkKey LOCAL_NET = new NetworkKey() {
+        @Override
+        public String toString() {
+            return "NetworkKey:LOCAL_NET";
+        }
+    };
+
+    private static class NetworkAsKey implements NetworkKey {
+        private final Network mNetwork;
+
+        NetworkAsKey(Network network) {
+            this.mNetwork = network;
+        }
+
+        @Override
+        public int hashCode() {
+            return mNetwork.hashCode();
+        }
+
+        @Override
+        public boolean equals(@Nullable Object other) {
+            if (!(other instanceof NetworkAsKey)) {
+                return false;
+            }
+            return mNetwork.equals(((NetworkAsKey) other).mNetwork);
+        }
+
+        @Override
+        public String toString() {
+            return "NetworkAsKey{ network=" + mNetwork + " }";
+        }
+    }
 }
diff --git a/service-t/src/com/android/server/connectivity/mdns/MulticastPacketReader.java b/service-t/src/com/android/server/connectivity/mdns/MulticastPacketReader.java
index b597f0a..078c4dd 100644
--- a/service-t/src/com/android/server/connectivity/mdns/MulticastPacketReader.java
+++ b/service-t/src/com/android/server/connectivity/mdns/MulticastPacketReader.java
@@ -59,11 +59,12 @@
      * Create a new {@link MulticastPacketReader}.
      * @param socket Socket to read from. This will *not* be closed when the reader terminates.
      * @param buffer Buffer to read packets into. Will only be used from the handler thread.
+     * @param port the port number for the socket
      */
     protected MulticastPacketReader(@NonNull String interfaceTag,
             @NonNull ParcelFileDescriptor socket, @NonNull Handler handler,
-            @NonNull byte[] buffer) {
-        super(handler, new RecvBuffer(buffer, new InetSocketAddress()));
+            @NonNull byte[] buffer, int port) {
+        super(handler, new RecvBuffer(buffer, new InetSocketAddress(port)));
         mLogTag = MulticastPacketReader.class.getSimpleName() + "/" + interfaceTag;
         mSocket = socket;
         mHandler = handler;
diff --git a/service-t/src/com/android/server/connectivity/mdns/SocketNetLinkMonitorFactory.java b/service-t/src/com/android/server/connectivity/mdns/SocketNetLinkMonitorFactory.java
new file mode 100644
index 0000000..8f6aecc
--- /dev/null
+++ b/service-t/src/com/android/server/connectivity/mdns/SocketNetLinkMonitorFactory.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2022 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.mdns;
+
+import android.annotation.NonNull;
+import android.os.Handler;
+
+import com.android.net.module.util.SharedLog;
+import com.android.server.connectivity.mdns.internal.SocketNetlinkMonitor;
+
+/**
+ * The factory class for creating the netlink monitor.
+ */
+public class SocketNetLinkMonitorFactory {
+
+    /**
+     * Creates a new netlink monitor.
+     */
+    public static ISocketNetLinkMonitor createNetLinkMonitor(@NonNull final Handler handler,
+            @NonNull SharedLog log) {
+        return new SocketNetlinkMonitor(handler, log);
+    }
+
+    private SocketNetLinkMonitorFactory() {
+    }
+
+}
diff --git a/service-t/src/com/android/server/connectivity/mdns/internal/SocketNetlinkMonitor.java b/service-t/src/com/android/server/connectivity/mdns/internal/SocketNetlinkMonitor.java
new file mode 100644
index 0000000..e053413
--- /dev/null
+++ b/service-t/src/com/android/server/connectivity/mdns/internal/SocketNetlinkMonitor.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2022 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.mdns.internal;
+
+import android.annotation.NonNull;
+import android.os.Handler;
+import android.system.OsConstants;
+
+import com.android.net.module.util.SharedLog;
+import com.android.net.module.util.ip.NetlinkMonitor;
+import com.android.net.module.util.netlink.NetlinkConstants;
+import com.android.net.module.util.netlink.NetlinkMessage;
+import com.android.server.connectivity.mdns.ISocketNetLinkMonitor;
+
+/**
+ * The netlink monitor for MdnsSocketProvider.
+ */
+public class SocketNetlinkMonitor extends NetlinkMonitor implements ISocketNetLinkMonitor {
+
+    public SocketNetlinkMonitor(@NonNull final Handler handler, @NonNull SharedLog log) {
+        super(handler, log, SocketNetlinkMonitor.class.getSimpleName(), OsConstants.NETLINK_ROUTE,
+                NetlinkConstants.RTMGRP_IPV4_IFADDR | NetlinkConstants.RTMGRP_IPV6_IFADDR);
+    }
+
+    @Override
+    public void processNetlinkMessage(NetlinkMessage nlMsg, long whenMs) {
+
+    }
+
+    @Override
+    public boolean isSupported() {
+        return true;
+    }
+
+    @Override
+    public void startMonitoring() {
+        this.start();
+    }
+
+    @Override
+    public void stopMonitoring() {
+        this.stop();
+    }
+}
diff --git a/service/Android.bp b/service/Android.bp
index 1523af9..e1376a1 100644
--- a/service/Android.bp
+++ b/service/Android.bp
@@ -138,6 +138,14 @@
     name: "service-connectivity-pre-jarjar",
     sdk_version: "system_server_current",
     min_sdk_version: "30",
+    // NetworkStackApiShimSettingsForCurrentBranch provides the latest available shims depending on
+    // the branch to "service-connectivity".
+    // There are Tethering.apk and TetheringNext.apk variants for the tethering APEX,
+    // which use NetworkStackApiStableShims and NetworkStackApiCurrentShims respectively.
+    // Note that there can be no service-connectivity-next because it would need to be configured in
+    // default_art_config.mk which doesn't support conditionals, hence this scheme of using a
+    // variable here.
+    defaults: ["NetworkStackApiShimSettingsForCurrentBranch"],
     srcs: [
         "src/**/*.java",
         ":framework-connectivity-shared-srcs",
@@ -183,7 +191,6 @@
         "PlatformProperties",
         "service-connectivity-protos",
         "service-connectivity-stats-protos",
-        "NetworkStackApiStableShims",
     ],
     apex_available: [
         "com.android.tethering",
diff --git a/service/jni/com_android_server_connectivity_ClatCoordinator.cpp b/service/jni/com_android_server_connectivity_ClatCoordinator.cpp
index 5b42659..dfc9ffc 100644
--- a/service/jni/com_android_server_connectivity_ClatCoordinator.cpp
+++ b/service/jni/com_android_server_connectivity_ClatCoordinator.cpp
@@ -26,9 +26,14 @@
 #include <nativehelper/JNIHelp.h>
 #include <net/if.h>
 #include <spawn.h>
+#include <sys/stat.h>
+#include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/xattr.h>
 #include <string>
+#include <unistd.h>
 
+#include <android-modules-utils/sdk_level.h>
 #include <bpf/BpfMap.h>
 #include <bpf/BpfUtils.h>
 #include <netjniutils/netjniutils.h>
@@ -45,14 +50,104 @@
 #define DEVICEPREFIX "v4-"
 
 namespace android {
-static const char* kClatdPath = "/apex/com.android.tethering/bin/for-system/clatd";
+
+#define ALOGF(s ...) do { ALOGE(s); } while(0)
+
+enum verify { VERIFY_DIR, VERIFY_BIN, VERIFY_PROG, VERIFY_MAP_RO, VERIFY_MAP_RW };
+
+static void verifyPerms(const char * const path,
+                        const mode_t mode, const uid_t uid, const gid_t gid,
+                        const char * const ctxt,
+                        const verify vtype) {
+    struct stat s = {};
+
+    if (lstat(path, &s)) ALOGF("lstat '%s' errno=%d", path, errno);
+    if (s.st_mode != mode) ALOGF("'%s' mode is 0%o != 0%o", path, s.st_mode, mode);
+    if (s.st_uid != uid) ALOGF("'%s' uid is %d != %d", path, s.st_uid, uid);
+    if (s.st_gid != gid) ALOGF("'%s' gid is %d != %d", path, s.st_gid, gid);
+
+    char b[255] = {};
+    int v = lgetxattr(path, "security.selinux", &b, sizeof(b));
+    if (v < 0) ALOGF("lgetxattr '%s' errno=%d", path, errno);
+    if (strncmp(ctxt, b, sizeof(b))) ALOGF("context of '%s' is '%s' != '%s'", path, b, ctxt);
+
+    int fd = -1;
+
+    switch (vtype) {
+      case VERIFY_DIR: return;
+      case VERIFY_BIN: return;
+      case VERIFY_PROG:   fd = bpf::retrieveProgram(path); break;
+      case VERIFY_MAP_RO: fd = bpf::mapRetrieveRO(path); break;
+      case VERIFY_MAP_RW: fd = bpf::mapRetrieveRW(path); break;
+    }
+
+    if (fd < 0) ALOGF("bpf_obj_get '%s' failed, errno=%d", path, errno);
+
+    if (fd >= 0) close(fd);
+}
+
+#undef ALOGF
+
+bool isGsiImage() {
+    // this implementation matches 2 other places in the codebase (same function name too)
+    return !access("/system/system_ext/etc/init/init.gsi.rc", F_OK);
+}
+
+static const char* kClatdDir = "/apex/com.android.tethering/bin/for-system";
+static const char* kClatdBin = "/apex/com.android.tethering/bin/for-system/clatd";
+
+#define V(path, md, uid, gid, ctx, vtype) \
+    verifyPerms((path), (md), AID_ ## uid, AID_ ## gid, "u:object_r:" ctx ":s0", VERIFY_ ## vtype)
+
+static void verifyClatPerms() {
+    // We might run as part of tests instead of as part of system server
+    if (getuid() != AID_SYSTEM) return;
+
+    // First verify the clatd directory and binary,
+    // since this is built into the apex file system image,
+    // failures here are 99% likely to be build problems.
+    V(kClatdDir, S_IFDIR|0750, ROOT, SYSTEM, "system_file", DIR);
+    V(kClatdBin, S_IFREG|S_ISUID|S_ISGID|0755, CLAT, CLAT, "clatd_exec", BIN);
+
+    // Move on to verifying that the bpf programs and maps are as expected.
+    // This relies on the kernel and bpfloader.
+
+    // Clat BPF was only mainlined during T.
+    if (!modules::sdklevel::IsAtLeastT()) return;
+
+    // HACK: some old vendor kernels lack ~5.10 backport of 'bpffs selinux genfscon' support.
+    // This is *NOT* supported, but let's allow, at least for now, U+ GSI to boot on them.
+    // (without this hack pixel5 R vendor + U gsi breaks)
+    if (isGsiImage() && !bpf::isAtLeastKernelVersion(5, 10, 0)) return;
+
+    V("/sys/fs/bpf", S_IFDIR|S_ISVTX|0777, ROOT, ROOT, "fs_bpf", DIR);
+    V("/sys/fs/bpf/net_shared", S_IFDIR|S_ISVTX|0777, ROOT, ROOT, "fs_bpf_net_shared", DIR);
+
+    // pre-U we do not have selinux privs to getattr on bpf maps/progs
+    // so while the below *should* be as listed, we have no way to actually verify
+    if (!modules::sdklevel::IsAtLeastU()) return;
+
+#define V2(path, md, vtype) \
+    V("/sys/fs/bpf/net_shared/" path, (md), ROOT, SYSTEM, "fs_bpf_net_shared", vtype)
+
+    V2("prog_clatd_schedcls_egress4_clat_rawip",  S_IFREG|0440, PROG);
+    V2("prog_clatd_schedcls_ingress6_clat_rawip", S_IFREG|0440, PROG);
+    V2("prog_clatd_schedcls_ingress6_clat_ether", S_IFREG|0440, PROG);
+    V2("map_clatd_clat_egress4_map",              S_IFREG|0660, MAP_RW);
+    V2("map_clatd_clat_ingress6_map",             S_IFREG|0660, MAP_RW);
+
+#undef V2
+
+}
+
+#undef V
 
 static void throwIOException(JNIEnv* env, const char* msg, int error) {
     jniThrowExceptionFmt(env, "java/io/IOException", "%s: %s", msg, strerror(error));
 }
 
 jstring com_android_server_connectivity_ClatCoordinator_selectIpv4Address(JNIEnv* env,
-                                                                          jobject clazz,
+                                                                          jclass clazz,
                                                                           jstring v4addr,
                                                                           jint prefixlen) {
     ScopedUtfChars address(env, v4addr);
@@ -84,7 +179,7 @@
 
 // Picks a random interface ID that is checksum neutral with the IPv4 address and the NAT64 prefix.
 jstring com_android_server_connectivity_ClatCoordinator_generateIpv6Address(
-        JNIEnv* env, jobject clazz, jstring ifaceStr, jstring v4Str, jstring prefix64Str,
+        JNIEnv* env, jclass clazz, jstring ifaceStr, jstring v4Str, jstring prefix64Str,
         jint mark) {
     ScopedUtfChars iface(env, ifaceStr);
     ScopedUtfChars addr4(env, v4Str);
@@ -125,7 +220,7 @@
 }
 
 static jint com_android_server_connectivity_ClatCoordinator_createTunInterface(JNIEnv* env,
-                                                                               jobject clazz,
+                                                                               jclass clazz,
                                                                                jstring tuniface) {
     ScopedUtfChars v4interface(env, tuniface);
 
@@ -152,7 +247,7 @@
     return fd;
 }
 
-static jint com_android_server_connectivity_ClatCoordinator_detectMtu(JNIEnv* env, jobject clazz,
+static jint com_android_server_connectivity_ClatCoordinator_detectMtu(JNIEnv* env, jclass clazz,
                                                                       jstring platSubnet,
                                                                       jint plat_suffix, jint mark) {
     ScopedUtfChars platSubnetStr(env, platSubnet);
@@ -174,25 +269,32 @@
 }
 
 static jint com_android_server_connectivity_ClatCoordinator_openPacketSocket(JNIEnv* env,
-                                                                              jobject clazz) {
+                                                                              jclass clazz) {
     // Will eventually be bound to htons(ETH_P_IPV6) protocol,
     // but only after appropriate bpf filter is attached.
-    int sock = socket(AF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+    const int sock = socket(AF_PACKET, SOCK_RAW | SOCK_CLOEXEC, 0);
     if (sock < 0) {
         throwIOException(env, "packet socket failed", errno);
         return -1;
     }
-    int on = 1;
+    const int on = 1;
+    // enable tpacket_auxdata cmsg delivery, which includes L2 header length
     if (setsockopt(sock, SOL_PACKET, PACKET_AUXDATA, &on, sizeof(on))) {
         throwIOException(env, "packet socket auxdata enablement failed", errno);
         close(sock);
         return -1;
     }
+    // needed for virtio_net_hdr prepending, which includes checksum metadata
+    if (setsockopt(sock, SOL_PACKET, PACKET_VNET_HDR, &on, sizeof(on))) {
+        throwIOException(env, "packet socket vnet_hdr enablement failed", errno);
+        close(sock);
+        return -1;
+    }
     return sock;
 }
 
 static jint com_android_server_connectivity_ClatCoordinator_openRawSocket6(JNIEnv* env,
-                                                                           jobject clazz,
+                                                                           jclass clazz,
                                                                            jint mark) {
     int sock = socket(AF_INET6, SOCK_RAW | SOCK_NONBLOCK | SOCK_CLOEXEC, IPPROTO_RAW);
     if (sock < 0) {
@@ -211,7 +313,7 @@
 }
 
 static void com_android_server_connectivity_ClatCoordinator_addAnycastSetsockopt(
-        JNIEnv* env, jobject clazz, jobject javaFd, jstring addr6, jint ifindex) {
+        JNIEnv* env, jclass clazz, jobject javaFd, jstring addr6, jint ifindex) {
     int sock = netjniutils::GetNativeFileDescriptor(env, javaFd);
     if (sock < 0) {
         jniThrowExceptionFmt(env, "java/io/IOException", "Invalid file descriptor");
@@ -237,7 +339,7 @@
 }
 
 static void com_android_server_connectivity_ClatCoordinator_configurePacketSocket(
-        JNIEnv* env, jobject clazz, jobject javaFd, jstring addr6, jint ifindex) {
+        JNIEnv* env, jclass clazz, jobject javaFd, jstring addr6, jint ifindex) {
     ScopedUtfChars addrStr(env, addr6);
 
     int sock = netjniutils::GetNativeFileDescriptor(env, javaFd);
@@ -261,7 +363,7 @@
 }
 
 static jint com_android_server_connectivity_ClatCoordinator_startClatd(
-        JNIEnv* env, jobject clazz, jobject tunJavaFd, jobject readSockJavaFd,
+        JNIEnv* env, jclass clazz, jobject tunJavaFd, jobject readSockJavaFd,
         jobject writeSockJavaFd, jstring iface, jstring pfx96, jstring v4, jstring v6) {
     ScopedUtfChars ifaceStr(env, iface);
     ScopedUtfChars pfx96Str(env, pfx96);
@@ -358,7 +460,7 @@
 
     // 5. actually perform vfork/dup2/execve
     pid_t pid;
-    if (int ret = posix_spawn(&pid, kClatdPath, &fa, &attr, (char* const*)args, nullptr)) {
+    if (int ret = posix_spawn(&pid, kClatdBin, &fa, &attr, (char* const*)args, nullptr)) {
         posix_spawnattr_destroy(&attr);
         posix_spawn_file_actions_destroy(&fa);
         throwIOException(env, "posix_spawn failed", ret);
@@ -408,7 +510,7 @@
     }
 }
 
-static void com_android_server_connectivity_ClatCoordinator_stopClatd(JNIEnv* env, jobject clazz,
+static void com_android_server_connectivity_ClatCoordinator_stopClatd(JNIEnv* env, jclass clazz,
                                                                       jstring iface, jstring pfx96,
                                                                       jstring v4, jstring v6,
                                                                       jint pid) {
@@ -426,7 +528,7 @@
 }
 
 static jlong com_android_server_connectivity_ClatCoordinator_getSocketCookie(
-        JNIEnv* env, jobject clazz, jobject sockJavaFd) {
+        JNIEnv* env, jclass clazz, jobject sockJavaFd) {
     int sockFd = netjniutils::GetNativeFileDescriptor(env, sockJavaFd);
     if (sockFd < 0) {
         jniThrowExceptionFmt(env, "java/io/IOException", "Invalid socket file descriptor");
@@ -477,6 +579,7 @@
 };
 
 int register_com_android_server_connectivity_ClatCoordinator(JNIEnv* env) {
+    verifyClatPerms();
     return jniRegisterNativeMethods(env,
             "android/net/connectivity/com/android/server/connectivity/ClatCoordinator",
             gMethods, NELEM(gMethods));
diff --git a/service/libconnectivity/src/connectivity_native.cpp b/service/libconnectivity/src/connectivity_native.cpp
index 9545ed1..a476498 100644
--- a/service/libconnectivity/src/connectivity_native.cpp
+++ b/service/libconnectivity/src/connectivity_native.cpp
@@ -23,8 +23,8 @@
 
 
 static std::shared_ptr<IConnectivityNative> getBinder() {
-    static ndk::SpAIBinder sBinder = ndk::SpAIBinder(reinterpret_cast<AIBinder*>(
-        AServiceManager_getService("connectivity_native")));
+    ndk::SpAIBinder sBinder = ndk::SpAIBinder(reinterpret_cast<AIBinder*>(
+        AServiceManager_checkService("connectivity_native")));
     return aidl::android::net::connectivity::aidl::IConnectivityNative::fromBinder(sBinder);
 }
 
@@ -45,21 +45,33 @@
 
 int AConnectivityNative_blockPortForBind(in_port_t port) {
     std::shared_ptr<IConnectivityNative> c = getBinder();
+    if (!c) {
+        return EAGAIN;
+    }
     return getErrno(c->blockPortForBind(port));
 }
 
 int AConnectivityNative_unblockPortForBind(in_port_t port) {
     std::shared_ptr<IConnectivityNative> c = getBinder();
+    if (!c) {
+        return EAGAIN;
+    }
     return getErrno(c->unblockPortForBind(port));
 }
 
 int AConnectivityNative_unblockAllPortsForBind() {
     std::shared_ptr<IConnectivityNative> c = getBinder();
+    if (!c) {
+        return EAGAIN;
+    }
     return getErrno(c->unblockAllPortsForBind());
 }
 
 int AConnectivityNative_getPortsBlockedForBind(in_port_t *ports, size_t *count) {
     std::shared_ptr<IConnectivityNative> c = getBinder();
+    if (!c) {
+        return EAGAIN;
+    }
     std::vector<int32_t> actualBlockedPorts;
     int err = getErrno(c->getPortsBlockedForBind(&actualBlockedPorts));
     if (err) {
diff --git a/service/native/libs/libclat/clatutils_test.cpp b/service/native/libs/libclat/clatutils_test.cpp
index abd4e81..f4f97db 100644
--- a/service/native/libs/libclat/clatutils_test.cpp
+++ b/service/native/libs/libclat/clatutils_test.cpp
@@ -165,7 +165,7 @@
     TunInterface v6Iface;
     ASSERT_EQ(0, v6Iface.init());
 
-    int s = socket(AF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, htons(ETH_P_IPV6));
+    const int s = socket(AF_PACKET, SOCK_RAW | SOCK_CLOEXEC, htons(ETH_P_IPV6));
     EXPECT_LE(0, s);
     struct in6_addr addr6;
     EXPECT_EQ(1, inet_pton(AF_INET6, "2001:db8::f00", &addr6));
diff --git a/service/src/com/android/metrics/stats.proto b/service/src/com/android/metrics/stats.proto
index 8104632..006d20a 100644
--- a/service/src/com/android/metrics/stats.proto
+++ b/service/src/com/android/metrics/stats.proto
@@ -347,3 +347,89 @@
     // How long(in seconds) this slice has been connected
     optional int32 slice_connection_duration_sec = 6;
 }
+
+/**
+ *  Logs DailykeepaliveInfoReported
+ *
+ * Logs from: packages/modules/Connectivity/service/src/com/android/
+ *            server/connectivity/AutomaticOnOffKeepaliveTracker.
+ */
+message DailykeepaliveInfoReported{
+    // Daily duration per number of concurrent keepalive
+    optional DurationPerNumOfKeepalive duration_per_num_of_keepalive = 1;
+
+    // Daily keepalive registered/active duration on each list of keepalive session, in
+    // milli-seconds
+    optional KeepaliveLifetimePerCarrier keepalive_lifetime_per_carrier = 2;
+
+    // Daily number of keepalive requests
+    optional int32 keepalive_requests = 3;
+
+    // Daily number of automatic keepalive requests
+    optional int32 automatic_keepalive_requests = 4;
+
+    // Daily number of distinct apps that requested keepalives
+    optional int32 distinct_user_count = 5;
+
+    // Daily distinct apps uid list that requested keepalives
+    repeated int32 uid = 6;
+}
+
+/**
+ * Daily duration per number of concurrent keepalive
+ *
+ * Logs from: packages/modules/Connectivity/service/src/com/android/
+ *            server/connectivity/AutomaticOnOffKeepaliveTracker.
+ */
+message DurationPerNumOfKeepalive {
+    repeated DurationForNumOfKeepalive duration_for_num_of_keepalive = 1;
+}
+
+message DurationForNumOfKeepalive {
+    // The number of concurrent keepalives is in the device
+    optional int32 num_of_keepalive = 1;
+
+    // How many milliseconds the device has keepalive registration number is num_of_keepalive
+    optional int32 keepalive_registered_durations_msec = 2;
+
+    // How many milliseconds the device has keepalive active(not paused) number is num_of_keepalive
+    optional int32 keepalive_active_durations_msec = 3;
+}
+
+/**
+ * Daily keepalive registered/active duration on each list of Keepalive session, in milli-seconds
+ *
+ * Logs from: packages/modules/Connectivity/service/src/com/android/
+ *            server/connectivity/AutomaticOnOffKeepaliveTracker.
+ */
+message KeepaliveLifetimePerCarrier {
+    // The number of network count on each list of carriers
+    repeated KeepaliveLifetimeForCarrier keepalive_lifetime_for_carrier = 1;
+}
+
+/**
+ * Logs the keepalive registered/active duration in milli-seconds and carrier
+ * info(carrier id, transport, keepalive interval).
+ *
+ * Logs from: packages/modules/Connectivity/service/src/com/android/
+ *            server/connectivity/AutomaticOnOffKeepaliveTracker.
+ */
+message KeepaliveLifetimeForCarrier {
+    // The carrier ID for each keepalive, or TelephonyManager.UNKNOWN_CARRIER_ID(-1) if not cell
+    optional int32 carrier_id = 1;
+
+    // The transport types of the underlying network for each keepalive. A network may include
+    // multiple transport types. Each transfer type is represented by a different bit, defined in
+    // packages/modules/Connectivity/framework/src/android/net/NetworkCapabilities.java
+    optional int32 transport_types = 2;
+
+    // The keepalive interval for each keepalive
+    optional int32 intervals_msec = 3;
+
+    // The lifetime of the keepalive registered today
+    optional int32 lifetime_msec = 4;
+
+    // The duration for which the keepalive was active (not suspended)
+    optional int32 active_lifetime_msec = 5;
+}
+
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java
index e969cd6..2af30dd 100755
--- a/service/src/com/android/server/ConnectivityService.java
+++ b/service/src/com/android/server/ConnectivityService.java
@@ -10734,6 +10734,18 @@
                         callback));
     }
 
+    private boolean hasUnderlyingTestNetworks(NetworkCapabilities nc) {
+        final List<Network> underlyingNetworks = nc.getUnderlyingNetworks();
+        if (underlyingNetworks == null) return false;
+
+        for (Network network : underlyingNetworks) {
+            if (getNetworkCapabilitiesInternal(network).hasTransport(TRANSPORT_TEST)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     @Override
     public void simulateDataStall(int detectionMethod, long timestampMillis,
             @NonNull Network network, @NonNull PersistableBundle extras) {
@@ -10744,14 +10756,18 @@
                 android.Manifest.permission.MANAGE_TEST_NETWORKS,
                 android.Manifest.permission.NETWORK_STACK);
         final NetworkCapabilities nc = getNetworkCapabilitiesInternal(network);
-        if (!nc.hasTransport(TRANSPORT_TEST)) {
-            throw new SecurityException("Data Stall simulation is only possible for test networks");
+        if (!nc.hasTransport(TRANSPORT_TEST) && !hasUnderlyingTestNetworks(nc)) {
+            throw new SecurityException(
+                    "Data Stall simulation is only possible for test networks or networks built on"
+                            + " top of test networks");
         }
 
         final NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
-        if (nai == null || nai.creatorUid != mDeps.getCallingUid()) {
-            throw new SecurityException("Data Stall simulation is only possible for network "
-                + "creators");
+        if (nai == null
+                || (nai.creatorUid != mDeps.getCallingUid()
+                        && nai.creatorUid != Process.SYSTEM_UID)) {
+            throw new SecurityException(
+                    "Data Stall simulation is only possible for network " + "creators");
         }
 
         // Instead of passing the data stall directly to the ConnectivityDiagnostics handler, treat
diff --git a/service/src/com/android/server/TestNetworkService.java b/service/src/com/android/server/TestNetworkService.java
index 5549fbe..843b7b3 100644
--- a/service/src/com/android/server/TestNetworkService.java
+++ b/service/src/com/android/server/TestNetworkService.java
@@ -310,9 +310,11 @@
                     NetworkStackConstants.IPV6_ADDR_ANY, 0), null, iface));
         }
 
+        // For testing purpose, fill legacy type for NetworkStatsService since it does not
+        // support transport types.
         final TestNetworkAgent agent = new TestNetworkAgent(context, looper, nc, lp,
-                new NetworkAgentConfig.Builder().build(), callingUid, binder,
-                mNetworkProvider);
+                new NetworkAgentConfig.Builder().setLegacyType(ConnectivityManager.TYPE_TEST)
+                        .build(), callingUid, binder, mNetworkProvider);
         agent.register();
         agent.markConnected();
         return agent;
diff --git a/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java b/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java
index 9f9b496..acce95d 100644
--- a/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java
+++ b/service/src/com/android/server/connectivity/AutomaticOnOffKeepaliveTracker.java
@@ -18,6 +18,7 @@
 
 import static android.net.NetworkAgent.CMD_START_SOCKET_KEEPALIVE;
 import static android.net.SocketKeepalive.ERROR_INVALID_SOCKET;
+import static android.net.SocketKeepalive.MIN_INTERVAL_SEC;
 import static android.net.SocketKeepalive.SUCCESS_PAUSED;
 import static android.provider.DeviceConfig.NAMESPACE_TETHERING;
 import static android.system.OsConstants.AF_INET;
@@ -51,6 +52,7 @@
 import android.system.Os;
 import android.system.OsConstants;
 import android.system.StructTimeval;
+import android.util.LocalLog;
 import android.util.Log;
 import android.util.SparseArray;
 
@@ -88,9 +90,8 @@
 public class AutomaticOnOffKeepaliveTracker {
     private static final String TAG = "AutomaticOnOffKeepaliveTracker";
     private static final int[] ADDRESS_FAMILIES = new int[] {AF_INET6, AF_INET};
-    private static final String EXTRA_BINDER_TOKEN = "token";
-    private static final long DEFAULT_TCP_POLLING_INTERVAL_MS = 120_000L;
     private static final long LOW_TCP_POLLING_INTERVAL_MS = 1_000L;
+    private static final int ADJUST_TCP_POLLING_DELAY_MS = 2000;
     private static final String AUTOMATIC_ON_OFF_KEEPALIVE_VERSION =
             "automatic_on_off_keepalive_version";
     /**
@@ -152,6 +153,9 @@
     // TODO: Remove this when TCP polling design is replaced with callback.
     private long mTestLowTcpPollingTimerUntilMs = 0;
 
+    private static final int MAX_EVENTS_LOGS = 40;
+    private final LocalLog mEventLog = new LocalLog(MAX_EVENTS_LOGS);
+
     /**
      * Information about a managed keepalive.
      *
@@ -179,8 +183,7 @@
         private final Network mUnderpinnedNetwork;
 
         AutomaticOnOffKeepalive(@NonNull final KeepaliveTracker.KeepaliveInfo ki,
-                final boolean autoOnOff, @NonNull Context context,
-                @Nullable Network underpinnedNetwork)
+                final boolean autoOnOff, @Nullable Network underpinnedNetwork)
                 throws InvalidSocketException {
             this.mKi = Objects.requireNonNull(ki);
             mCallback = ki.mCallback;
@@ -231,6 +234,7 @@
 
         @Override
         public void binderDied() {
+            mEventLog.log("Binder died : " + mCallback);
             mConnectivityServiceHandler.post(() -> cleanupAutoOnOffKeepalive(this));
         }
 
@@ -281,12 +285,14 @@
         mAlarmManager = mDependencies.getAlarmManager(context);
     }
 
-    private void startTcpPollingAlarm(@NonNull final AlarmManager.OnAlarmListener listener) {
+    private void startTcpPollingAlarm(@NonNull AutomaticOnOffKeepalive ki) {
+        if (ki.mAlarmListener == null) return;
+
         final long triggerAtMillis =
-                SystemClock.elapsedRealtime() + getTcpPollingInterval();
+                mDependencies.getElapsedRealtime() + getTcpPollingIntervalMs(ki);
         // Setup a non-wake up alarm.
         mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, triggerAtMillis, null /* tag */,
-                listener, mConnectivityServiceHandler);
+                ki.mAlarmListener, mConnectivityServiceHandler);
     }
 
     /**
@@ -323,7 +329,7 @@
             handleMaybeResumeKeepalive(ki);
         }
         // TODO: listen to socket status instead of periodically check.
-        startTcpPollingAlarm(ki.mAlarmListener);
+        startTcpPollingAlarm(ki);
     }
 
     /**
@@ -331,6 +337,7 @@
      * @param autoKi the keepalive to resume
      */
     public void handleMaybeResumeKeepalive(@NonNull AutomaticOnOffKeepalive autoKi) {
+        mEventLog.log("Resume keepalive " + autoKi.mCallback + " on " + autoKi.getNetwork());
         // Might happen if the automatic keepalive was removed by the app just as the alarm fires.
         if (!mAutomaticOnOffKeepalives.contains(autoKi)) return;
         if (STATE_ALWAYS_ON == autoKi.mAutomaticOnOffState) {
@@ -376,6 +383,7 @@
      * Handle stop all keepalives on the specific network.
      */
     public void handleStopAllKeepalives(NetworkAgentInfo nai, int reason) {
+        mEventLog.log("Stop all keepalives on " + nai.network + " because " + reason);
         mKeepaliveTracker.handleStopAllKeepalives(nai, reason);
         final List<AutomaticOnOffKeepalive> matches =
                 CollectionUtils.filter(mAutomaticOnOffKeepalives, it -> it.mKi.getNai() == nai);
@@ -391,6 +399,7 @@
      */
     public void handleStartKeepalive(Message message) {
         final AutomaticOnOffKeepalive autoKi = (AutomaticOnOffKeepalive) message.obj;
+        mEventLog.log("Start keepalive " + autoKi.mCallback + " on " + autoKi.getNetwork());
         mKeepaliveTracker.handleStartKeepalive(autoKi.mKi);
 
         // Add automatic on/off request into list to track its life cycle.
@@ -403,15 +412,17 @@
         }
         mAutomaticOnOffKeepalives.add(autoKi);
         if (STATE_ALWAYS_ON != autoKi.mAutomaticOnOffState) {
-            startTcpPollingAlarm(autoKi.mAlarmListener);
+            startTcpPollingAlarm(autoKi);
         }
     }
 
     private void handleResumeKeepalive(@NonNull final KeepaliveTracker.KeepaliveInfo ki) {
         mKeepaliveTracker.handleStartKeepalive(ki);
+        mEventLog.log("Resumed successfully keepalive " + ki.mCallback + " on " + ki.mNai);
     }
 
     private void handlePauseKeepalive(@NonNull final KeepaliveTracker.KeepaliveInfo ki) {
+        mEventLog.log("Suspend keepalive " + ki.mCallback + " on " + ki.mNai);
         // TODO : mKT.handleStopKeepalive should take a KeepaliveInfo instead
         mKeepaliveTracker.handleStopKeepalive(ki.getNai(), ki.getSlot(), SUCCESS_PAUSED);
     }
@@ -420,6 +431,7 @@
      * Handle stop keepalives on the specific network with given slot.
      */
     public void handleStopKeepalive(@NonNull final AutomaticOnOffKeepalive autoKi, int reason) {
+        mEventLog.log("Stop keepalive " + autoKi.mCallback + " because " + reason);
         // Stop the keepalive unless it was suspended. This includes the case where it's managed
         // but enabled, and the case where it's always on.
         if (autoKi.mAutomaticOnOffState != STATE_SUSPENDED) {
@@ -464,7 +476,12 @@
         if (null == ki) return;
         try {
             final AutomaticOnOffKeepalive autoKi = new AutomaticOnOffKeepalive(ki,
-                    automaticOnOffKeepalives, mContext, underpinnedNetwork);
+                    automaticOnOffKeepalives, underpinnedNetwork);
+            mEventLog.log("Start natt keepalive " + cb + " on " + nai.network
+                    + " " + srcAddrString + ":" + srcPort
+                    + " → " + dstAddrString + ":" + dstPort
+                    + " auto=" + autoKi
+                    + " underpinned=" + underpinnedNetwork);
             mConnectivityServiceHandler.obtainMessage(NetworkAgent.CMD_START_SOCKET_KEEPALIVE,
                     // TODO : move ConnectivityService#encodeBool to a static lib.
                     automaticOnOffKeepalives ? 1 : 0, 0, autoKi).sendToTarget();
@@ -494,7 +511,12 @@
         if (null == ki) return;
         try {
             final AutomaticOnOffKeepalive autoKi = new AutomaticOnOffKeepalive(ki,
-                    automaticOnOffKeepalives, mContext, underpinnedNetwork);
+                    automaticOnOffKeepalives, underpinnedNetwork);
+            mEventLog.log("Start natt keepalive " + cb + " on " + nai.network
+                    + " " + srcAddrString
+                    + " → " + dstAddrString + ":" + dstPort
+                    + " auto=" + autoKi
+                    + " underpinned=" + underpinnedNetwork);
             mConnectivityServiceHandler.obtainMessage(NetworkAgent.CMD_START_SOCKET_KEEPALIVE,
                     // TODO : move ConnectivityService#encodeBool to a static lib.
                     automaticOnOffKeepalives ? 1 : 0, 0, autoKi).sendToTarget();
@@ -524,7 +546,7 @@
         try {
             final AutomaticOnOffKeepalive autoKi = new AutomaticOnOffKeepalive(ki,
                     false /* autoOnOff, tcp keepalives are never auto on/off */,
-                    mContext, null /* underpinnedNetwork, tcp keepalives do not refer to this */);
+                    null /* underpinnedNetwork, tcp keepalives do not refer to this */);
             mConnectivityServiceHandler.obtainMessage(CMD_START_SOCKET_KEEPALIVE, autoKi)
                     .sendToTarget();
         } catch (InvalidSocketException e) {
@@ -549,6 +571,11 @@
             pw.println(autoKi.toString());
         }
         pw.decreaseIndent();
+
+        pw.println("Events (most recent first):");
+        pw.increaseIndent();
+        mEventLog.reverseDump(pw);
+        pw.decreaseIndent();
     }
 
     /**
@@ -678,9 +705,15 @@
         }
     }
 
-    private long getTcpPollingInterval() {
+    private long getTcpPollingIntervalMs(@NonNull AutomaticOnOffKeepalive ki) {
         final boolean useLowTimer = mTestLowTcpPollingTimerUntilMs > System.currentTimeMillis();
-        return useLowTimer ? LOW_TCP_POLLING_INTERVAL_MS : DEFAULT_TCP_POLLING_INTERVAL_MS;
+        // Adjust the polling interval to be smaller than the keepalive delay to preserve
+        // some time for the system to restart the keepalive.
+        final int timer = ki.mKi.getKeepaliveIntervalSec() * 1000 - ADJUST_TCP_POLLING_DELAY_MS;
+        if (timer < MIN_INTERVAL_SEC) {
+            Log.wtf(TAG, "Unreasonably low keepalive delay: " + ki.mKi.getKeepaliveIntervalSec());
+        }
+        return useLowTimer ? LOW_TCP_POLLING_INTERVAL_MS : Math.max(timer, MIN_INTERVAL_SEC);
     }
 
     /**
@@ -787,5 +820,14 @@
             return DeviceConfigUtils.isFeatureEnabled(mContext, NAMESPACE_TETHERING, name,
                     defaultEnabled);
         }
+
+        /**
+         * Returns milliseconds since boot, including time spent in sleep.
+         *
+         * @return elapsed milliseconds since boot.
+         */
+        public long getElapsedRealtime() {
+            return SystemClock.elapsedRealtime();
+        }
     }
 }
diff --git a/service/src/com/android/server/connectivity/KeepaliveTracker.java b/service/src/com/android/server/connectivity/KeepaliveTracker.java
index 06294db..60485b3 100644
--- a/service/src/com/android/server/connectivity/KeepaliveTracker.java
+++ b/service/src/com/android/server/connectivity/KeepaliveTracker.java
@@ -264,6 +264,10 @@
             return mSlot;
         }
 
+        int getKeepaliveIntervalSec() {
+            return mInterval;
+        }
+
         private int checkNetworkConnected() {
             if (!mNai.networkInfo.isConnectedOrConnecting()) {
                 return ERROR_INVALID_NETWORK;
diff --git a/tests/common/java/android/net/NetworkCapabilitiesTest.java b/tests/common/java/android/net/NetworkCapabilitiesTest.java
index 7b374d2..aae3425 100644
--- a/tests/common/java/android/net/NetworkCapabilitiesTest.java
+++ b/tests/common/java/android/net/NetworkCapabilitiesTest.java
@@ -21,6 +21,7 @@
 import static android.net.NetworkCapabilities.MIN_TRANSPORT;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_CBS;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_DUN;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_EIMS;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_ENTERPRISE;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_FOREGROUND;
@@ -36,6 +37,7 @@
 import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_RCS;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_SUPL;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
@@ -113,6 +115,9 @@
     private static final int TEST_SUBID2 = 2;
     private static final int TEST_SUBID3 = 3;
 
+    private static final Set<Integer> TEST_NETWORKS_EXTRA_ALLOWED_CAPS_ON_NON_CELL =
+            Set.of(NET_CAPABILITY_CBS, NET_CAPABILITY_DUN, NET_CAPABILITY_RCS);
+
     @Rule
     public DevSdkIgnoreRule mDevSdkIgnoreRule = new DevSdkIgnoreRule();
 
@@ -1321,16 +1326,31 @@
     }
 
     @Test
-    public void testRestrictCapabilitiesForTestNetworkByNotOwnerWithRestrictedNc() {
-        testRestrictCapabilitiesForTestNetworkWithRestrictedNc(false /* isOwner */);
+    public void testRestrictCapabilitiesForTestNetworkRestrictedNc_NotOwner_NotCell() {
+        testRestrictCapabilitiesForTestNetworkWithRestrictedNc(
+                false /* isOwner */, false /* isCell */);
     }
 
     @Test
-    public void testRestrictCapabilitiesForTestNetworkByOwnerWithRestrictedNc() {
-        testRestrictCapabilitiesForTestNetworkWithRestrictedNc(true /* isOwner */);
+    public void testRestrictCapabilitiesForTestNetworkRestrictedNc_Owner_NotCell() {
+        testRestrictCapabilitiesForTestNetworkWithRestrictedNc(
+                true /* isOwner */, false /* isCell */);
     }
 
-    private void testRestrictCapabilitiesForTestNetworkWithRestrictedNc(boolean isOwner) {
+    @Test
+    public void testRestrictCapabilitiesForTestNetworkRestrictedNc_NotOwner_Cell() {
+        testRestrictCapabilitiesForTestNetworkWithRestrictedNc(
+                false /* isOwner */, true /* isCell */);
+    }
+
+    @Test
+    public void testRestrictCapabilitiesForTestNetworkRestrictedNc_Owner_Cell() {
+        testRestrictCapabilitiesForTestNetworkWithRestrictedNc(
+                true /* isOwner */, false /* isCell */);
+    }
+
+    private void testRestrictCapabilitiesForTestNetworkWithRestrictedNc(
+            boolean isOwner, boolean isCell) {
         final int ownerUid = 1234;
         final int signalStrength = -80;
         final int[] administratorUids = {1001, ownerUid};
@@ -1339,29 +1359,50 @@
         // the networkCapabilities will contain more than one transport type. However,
         // networkCapabilities must have a single transport specified to use NetworkSpecifier. Thus,
         // do not verify this part since it's verified in other tests.
-        final NetworkCapabilities restrictedNc = new NetworkCapabilities.Builder()
+        final NetworkCapabilities.Builder restrictedNcBuilder = new NetworkCapabilities.Builder()
                 .removeCapability(NET_CAPABILITY_NOT_RESTRICTED)
-                .addTransportType(TRANSPORT_CELLULAR)
                 .addCapability(NET_CAPABILITY_MMS)
                 .addCapability(NET_CAPABILITY_NOT_METERED)
                 .setAdministratorUids(administratorUids)
                 .setOwnerUid(ownerUid)
                 .setSignalStrength(signalStrength)
                 .setTransportInfo(transportInfo)
-                .setSubscriptionIds(Set.of(TEST_SUBID1)).build();
+                .setSubscriptionIds(Set.of(TEST_SUBID1));
+        for (int cap : TEST_NETWORKS_EXTRA_ALLOWED_CAPS_ON_NON_CELL) {
+            restrictedNcBuilder.addCapability(cap);
+        }
+
+        if (isCell) {
+            restrictedNcBuilder.addTransportType(TRANSPORT_CELLULAR);
+        }
+        final NetworkCapabilities restrictedNc = restrictedNcBuilder.build();
+
         final int creatorUid = isOwner ? ownerUid : INVALID_UID;
         restrictedNc.restrictCapabilitiesForTestNetwork(creatorUid);
 
         final NetworkCapabilities.Builder expectedNcBuilder = new NetworkCapabilities.Builder()
                 .removeCapability(NET_CAPABILITY_NOT_RESTRICTED);
-        // If the test network is restricted, then the network may declare any transport, and
-        // appended with TRANSPORT_TEST.
-        expectedNcBuilder.addTransportType(TRANSPORT_CELLULAR);
+
+        if (isCell) {
+            // If the test network is restricted, then the network may declare any transport, and
+            // appended with TRANSPORT_TEST.
+            expectedNcBuilder.addTransportType(TRANSPORT_CELLULAR);
+        } else {
+            // If the test network only has TRANSPORT_TEST, then it can keep the subscription IDs.
+            expectedNcBuilder.setSubscriptionIds(Set.of(TEST_SUBID1));
+        }
         expectedNcBuilder.addTransportType(TRANSPORT_TEST);
+
         // Only TEST_NETWORKS_ALLOWED_CAPABILITIES will be kept.
         expectedNcBuilder.addCapability(NET_CAPABILITY_NOT_METERED);
         expectedNcBuilder.removeCapability(NET_CAPABILITY_TRUSTED);
 
+        if (!isCell) {
+            for (int cap : TEST_NETWORKS_EXTRA_ALLOWED_CAPS_ON_NON_CELL) {
+                expectedNcBuilder.addCapability(cap);
+            }
+        }
+
         expectedNcBuilder.setSignalStrength(signalStrength).setTransportInfo(transportInfo);
         if (creatorUid == ownerUid) {
             // Only retain the owner and administrator UIDs if they match the app registering the
diff --git a/tests/common/java/android/net/NetworkProviderTest.kt b/tests/common/java/android/net/NetworkProviderTest.kt
index c0e7f61..fcbb0dd 100644
--- a/tests/common/java/android/net/NetworkProviderTest.kt
+++ b/tests/common/java/android/net/NetworkProviderTest.kt
@@ -79,6 +79,7 @@
     @After
     fun tearDown() {
         mHandlerThread.quitSafely()
+        mHandlerThread.join()
         instrumentation.getUiAutomation().dropShellPermissionIdentity()
     }
 
diff --git a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
index fb6759e..fd7bd74 100644
--- a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
+++ b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
@@ -30,16 +30,17 @@
 import android.net.NetworkTemplate.MATCH_WIFI
 import android.net.NetworkTemplate.NETWORK_TYPE_ALL
 import android.net.NetworkTemplate.OEM_MANAGED_ALL
+import android.os.Build
 import android.telephony.TelephonyManager
 import com.android.testutils.ConnectivityModuleTest
 import com.android.testutils.DevSdkIgnoreRule
 import com.android.testutils.SC_V2
+import kotlin.test.assertEquals
+import kotlin.test.assertFailsWith
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
-import kotlin.test.assertEquals
-import kotlin.test.assertFailsWith
 
 private const val TEST_IMSI1 = "imsi"
 private const val TEST_WIFI_KEY1 = "wifiKey1"
@@ -96,9 +97,27 @@
         }
 
         // Verify carrier and mobile template cannot contain one of subscriber Id is null.
-        listOf(MATCH_MOBILE, MATCH_CARRIER).forEach {
+        assertFailsWith<IllegalArgumentException> {
+            NetworkTemplate.Builder(MATCH_CARRIER).setSubscriberIds(setOf(null)).build()
+        }
+        val firstSdk = Build.VERSION.DEVICE_INITIAL_SDK_INT
+        if (firstSdk > Build.VERSION_CODES.TIRAMISU) {
             assertFailsWith<IllegalArgumentException> {
-                NetworkTemplate.Builder(it).setSubscriberIds(setOf(null)).build()
+                NetworkTemplate.Builder(MATCH_MOBILE).setSubscriberIds(setOf(null)).build()
+            }
+        } else {
+            NetworkTemplate.Builder(MATCH_MOBILE).setSubscriberIds(setOf(null)).build().let {
+                val expectedTemplate = NetworkTemplate(
+                    MATCH_MOBILE,
+                    arrayOfNulls<String>(1) /*subscriberIds*/,
+                    emptyArray<String>() /*wifiNetworkKey*/,
+                    METERED_ALL,
+                    ROAMING_ALL,
+                    DEFAULT_NETWORK_ALL,
+                    NETWORK_TYPE_ALL,
+                    OEM_MANAGED_ALL
+                )
+                assertEquals(expectedTemplate, it)
             }
         }
 
diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/MyVpnService.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/MyVpnService.java
index 449454e..fe522a0 100644
--- a/tests/cts/hostside/app/src/com/android/cts/net/hostside/MyVpnService.java
+++ b/tests/cts/hostside/app/src/com/android/cts/net/hostside/MyVpnService.java
@@ -32,6 +32,7 @@
 import com.android.networkstack.apishim.VpnServiceBuilderShimImpl;
 import com.android.networkstack.apishim.common.UnsupportedApiLevelException;
 import com.android.networkstack.apishim.common.VpnServiceBuilderShim;
+import com.android.testutils.PacketReflector;
 
 import java.io.IOException;
 import java.net.InetAddress;
diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/PacketReflector.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/PacketReflector.java
deleted file mode 100644
index 124c2c3..0000000
--- a/tests/cts/hostside/app/src/com/android/cts/net/hostside/PacketReflector.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (C) 2014 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.cts.net.hostside;
-
-import static android.system.OsConstants.ICMP6_ECHO_REPLY;
-import static android.system.OsConstants.ICMP6_ECHO_REQUEST;
-import static android.system.OsConstants.ICMP_ECHO;
-import static android.system.OsConstants.ICMP_ECHOREPLY;
-
-import android.system.ErrnoException;
-import android.system.Os;
-import android.util.Log;
-
-import java.io.FileDescriptor;
-import java.io.IOException;
-
-public class PacketReflector extends Thread {
-
-    private static int IPV4_HEADER_LENGTH = 20;
-    private static int IPV6_HEADER_LENGTH = 40;
-
-    private static int IPV4_ADDR_OFFSET = 12;
-    private static int IPV6_ADDR_OFFSET = 8;
-    private static int IPV4_ADDR_LENGTH = 4;
-    private static int IPV6_ADDR_LENGTH = 16;
-
-    private static int IPV4_PROTO_OFFSET = 9;
-    private static int IPV6_PROTO_OFFSET = 6;
-
-    private static final byte IPPROTO_ICMP = 1;
-    private static final byte IPPROTO_TCP = 6;
-    private static final byte IPPROTO_UDP = 17;
-    private static final byte IPPROTO_ICMPV6 = 58;
-
-    private static int ICMP_HEADER_LENGTH = 8;
-    private static int TCP_HEADER_LENGTH = 20;
-    private static int UDP_HEADER_LENGTH = 8;
-
-    private static final byte ICMP_ECHO = 8;
-    private static final byte ICMP_ECHOREPLY = 0;
-
-    private static String TAG = "PacketReflector";
-
-    private FileDescriptor mFd;
-    private byte[] mBuf;
-
-    public PacketReflector(FileDescriptor fd, int mtu) {
-        super("PacketReflector");
-        mFd = fd;
-        mBuf = new byte[mtu];
-    }
-
-    private static void swapBytes(byte[] buf, int pos1, int pos2, int len) {
-        for (int i = 0; i < len; i++) {
-            byte b = buf[pos1 + i];
-            buf[pos1 + i] = buf[pos2 + i];
-            buf[pos2 + i] = b;
-        }
-    }
-
-    private static void swapAddresses(byte[] buf, int version) {
-        int addrPos, addrLen;
-        switch(version) {
-            case 4:
-                addrPos = IPV4_ADDR_OFFSET;
-                addrLen = IPV4_ADDR_LENGTH;
-                break;
-            case 6:
-                addrPos = IPV6_ADDR_OFFSET;
-                addrLen = IPV6_ADDR_LENGTH;
-                break;
-            default:
-                throw new IllegalArgumentException();
-        }
-        swapBytes(buf, addrPos, addrPos + addrLen, addrLen);
-    }
-
-    // Reflect TCP packets: swap the source and destination addresses, but don't change the ports.
-    // This is used by the test to "connect to itself" through the VPN.
-    private void processTcpPacket(byte[] buf, int version, int len, int hdrLen) {
-        if (len < hdrLen + TCP_HEADER_LENGTH) {
-            return;
-        }
-
-        // Swap src and dst IP addresses.
-        swapAddresses(buf, version);
-
-        // Send the packet back.
-        writePacket(buf, len);
-    }
-
-    // Echo UDP packets: swap source and destination addresses, and source and destination ports.
-    // This is used by the test to check that the bytes it sends are echoed back.
-    private void processUdpPacket(byte[] buf, int version, int len, int hdrLen) {
-        if (len < hdrLen + UDP_HEADER_LENGTH) {
-            return;
-        }
-
-        // Swap src and dst IP addresses.
-        swapAddresses(buf, version);
-
-        // Swap dst and src ports.
-        int portOffset = hdrLen;
-        swapBytes(buf, portOffset, portOffset + 2, 2);
-
-        // Send the packet back.
-        writePacket(buf, len);
-    }
-
-    private void processIcmpPacket(byte[] buf, int version, int len, int hdrLen) {
-        if (len < hdrLen + ICMP_HEADER_LENGTH) {
-            return;
-        }
-
-        byte type = buf[hdrLen];
-        if (!(version == 4 && type == ICMP_ECHO) &&
-            !(version == 6 && type == (byte) ICMP6_ECHO_REQUEST)) {
-            return;
-        }
-
-        // Save the ping packet we received.
-        byte[] request = buf.clone();
-
-        // Swap src and dst IP addresses, and send the packet back.
-        // This effectively pings the device to see if it replies.
-        swapAddresses(buf, version);
-        writePacket(buf, len);
-
-        // The device should have replied, and buf should now contain a ping response.
-        int received = readPacket(buf);
-        if (received != len) {
-            Log.i(TAG, "Reflecting ping did not result in ping response: " +
-                       "read=" + received + " expected=" + len);
-            return;
-        }
-
-        byte replyType = buf[hdrLen];
-        if ((type == ICMP_ECHO && replyType != ICMP_ECHOREPLY)
-                || (type == (byte) ICMP6_ECHO_REQUEST && replyType != (byte) ICMP6_ECHO_REPLY)) {
-            Log.i(TAG, "Received unexpected ICMP reply: original " + type
-                    + ", reply " + replyType);
-            return;
-        }
-
-        // Compare the response we got with the original packet.
-        // The only thing that should have changed are addresses, type and checksum.
-        // Overwrite them with the received bytes and see if the packet is otherwise identical.
-        request[hdrLen] = buf[hdrLen];          // Type
-        request[hdrLen + 2] = buf[hdrLen + 2];  // Checksum byte 1.
-        request[hdrLen + 3] = buf[hdrLen + 3];  // Checksum byte 2.
-
-        // Since Linux kernel 4.2, net.ipv6.auto_flowlabels is set by default, and therefore
-        // the request and reply may have different IPv6 flow label: ignore that as well.
-        if (version == 6) {
-            request[1] = (byte)(request[1] & 0xf0 | buf[1] & 0x0f);
-            request[2] = buf[2];
-            request[3] = buf[3];
-        }
-
-        for (int i = 0; i < len; i++) {
-            if (buf[i] != request[i]) {
-                Log.i(TAG, "Received non-matching packet when expecting ping response.");
-                return;
-            }
-        }
-
-        // Now swap the addresses again and reflect the packet. This sends a ping reply.
-        swapAddresses(buf, version);
-        writePacket(buf, len);
-    }
-
-    private void writePacket(byte[] buf, int len) {
-        try {
-            Os.write(mFd, buf, 0, len);
-        } catch (ErrnoException|IOException e) {
-            Log.e(TAG, "Error writing packet: " + e.getMessage());
-        }
-    }
-
-    private int readPacket(byte[] buf) {
-        int len;
-        try {
-            len = Os.read(mFd, buf, 0, buf.length);
-        } catch (ErrnoException|IOException e) {
-            Log.e(TAG, "Error reading packet: " + e.getMessage());
-            len = -1;
-        }
-        return len;
-    }
-
-    // Reads one packet from our mFd, and possibly writes the packet back.
-    private void processPacket() {
-        int len = readPacket(mBuf);
-        if (len < 1) {
-            return;
-        }
-
-        int version = mBuf[0] >> 4;
-        int addrPos, protoPos, hdrLen, addrLen;
-        if (version == 4) {
-            hdrLen = IPV4_HEADER_LENGTH;
-            protoPos = IPV4_PROTO_OFFSET;
-            addrPos = IPV4_ADDR_OFFSET;
-            addrLen = IPV4_ADDR_LENGTH;
-        } else if (version == 6) {
-            hdrLen = IPV6_HEADER_LENGTH;
-            protoPos = IPV6_PROTO_OFFSET;
-            addrPos = IPV6_ADDR_OFFSET;
-            addrLen = IPV6_ADDR_LENGTH;
-        } else {
-            return;
-        }
-
-        if (len < hdrLen) {
-            return;
-        }
-
-        byte proto = mBuf[protoPos];
-        switch (proto) {
-            case IPPROTO_ICMP:
-            case IPPROTO_ICMPV6:
-                processIcmpPacket(mBuf, version, len, hdrLen);
-                break;
-            case IPPROTO_TCP:
-                processTcpPacket(mBuf, version, len, hdrLen);
-                break;
-            case IPPROTO_UDP:
-                processUdpPacket(mBuf, version, len, hdrLen);
-                break;
-        }
-    }
-
-    public void run() {
-        Log.i(TAG, "PacketReflector starting fd=" + mFd + " valid=" + mFd.valid());
-        while (!interrupted() && mFd.valid()) {
-            processPacket();
-        }
-        Log.i(TAG, "PacketReflector exiting fd=" + mFd + " valid=" + mFd.valid());
-    }
-}
diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java
index b6902b5..c28ee64 100755
--- a/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java
+++ b/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java
@@ -1274,6 +1274,31 @@
     }
 
     @Test
+    public void testSocketClosed() throws Exception {
+        assumeTrue(supportedHardware());
+
+        final FileDescriptor localFd = openSocketFd(TEST_HOST, 80, TIMEOUT_MS);
+        final List<FileDescriptor> remoteFds = new ArrayList<>();
+
+        for (int i = 0; i < 30; i++) {
+            remoteFds.add(openSocketFdInOtherApp(TEST_HOST, 80, TIMEOUT_MS));
+        }
+
+        final String allowedApps = mRemoteSocketFactoryClient.getPackageName() + "," + mPackageName;
+        startVpn(new String[] {"192.0.2.2/32", "2001:db8:1:2::ffe/128"},
+                new String[] {"192.0.2.0/24", "2001:db8::/32"},
+                allowedApps, "", null, null /* underlyingNetworks */, false /* isAlwaysMetered */);
+
+        // Socket owned by VPN uid is not closed
+        assertSocketStillOpen(localFd, TEST_HOST);
+
+        // Sockets not owned by VPN uid are closed
+        for (final FileDescriptor remoteFd: remoteFds) {
+            assertSocketClosed(remoteFd, TEST_HOST);
+        }
+    }
+
+    @Test
     public void testExcludedRoutes() throws Exception {
         assumeTrue(supportedHardware());
         assumeTrue(SdkLevel.isAtLeastT());
diff --git a/tests/cts/hostside/app2/src/com/android/cts/net/hostside/app2/Common.java b/tests/cts/hostside/app2/src/com/android/cts/net/hostside/app2/Common.java
index 2e79182..37dc7a0 100644
--- a/tests/cts/hostside/app2/src/com/android/cts/net/hostside/app2/Common.java
+++ b/tests/cts/hostside/app2/src/com/android/cts/net/hostside/app2/Common.java
@@ -99,7 +99,8 @@
             }
             case TYPE_COMPONENT_EXPEDITED_JOB: {
                 final int capabilities = activityManager.getUidProcessCapabilities(Process.myUid());
-                if ((capabilities & ActivityManager.PROCESS_CAPABILITY_NETWORK) == 0) {
+                if ((capabilities
+                        & ActivityManager.PROCESS_CAPABILITY_POWER_RESTRICTED_NETWORK) == 0) {
                     observer.onNetworkStateChecked(
                             INetworkStateObserver.RESULT_ERROR_UNEXPECTED_CAPABILITIES,
                             "Unexpected capabilities: " + capabilities);
diff --git a/tests/cts/hostside/src/com/android/cts/net/HostsideVpnTests.java b/tests/cts/hostside/src/com/android/cts/net/HostsideVpnTests.java
index 603779d..3ca4775 100644
--- a/tests/cts/hostside/src/com/android/cts/net/HostsideVpnTests.java
+++ b/tests/cts/hostside/src/com/android/cts/net/HostsideVpnTests.java
@@ -51,6 +51,10 @@
         runDeviceTests(TEST_PKG, TEST_PKG + ".VpnTest", "testAppDisallowed");
     }
 
+    public void testSocketClosed() throws Exception {
+        runDeviceTests(TEST_PKG, TEST_PKG + ".VpnTest", "testSocketClosed");
+    }
+
     public void testGetConnectionOwnerUidSecurity() throws Exception {
         runDeviceTests(TEST_PKG, TEST_PKG + ".VpnTest", "testGetConnectionOwnerUidSecurity");
     }
diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
index 1bed83d..d6d384b 100644
--- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
+++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
@@ -2409,6 +2409,7 @@
         }
     }
 
+    @AppModeFull(reason = "Cannot get WifiManager in instant app mode")
     @Test
     public void testBlockedStatusCallback() throws Exception {
         // Cannot use @IgnoreUpTo(Build.VERSION_CODES.R) because this test also requires API 31
@@ -2555,15 +2556,14 @@
         try {
             tetherEventCallback.assumeWifiTetheringSupported(mContext);
 
-            final TestableNetworkCallback wifiCb = new TestableNetworkCallback();
-            mCtsNetUtils.ensureWifiConnected();
-            registerCallbackAndWaitForAvailable(makeWifiNetworkRequest(), wifiCb);
+            tetherUtils.startWifiTethering(tetherEventCallback);
             // Update setting to verify the behavior.
             setAirplaneMode(true);
-            // Verify wifi lost to make sure airplane mode takes effect. This could
+            // Verify softap lost to make sure airplane mode takes effect. This could
             // prevent the race condition between airplane mode enabled and the followed
             // up wifi tethering enabled.
-            waitForLost(wifiCb);
+            tetherEventCallback.expectNoTetheringActive();
+
             // start wifi tethering
             tetherUtils.startWifiTethering(tetherEventCallback);
 
@@ -2708,6 +2708,7 @@
         // Cannot use @IgnoreUpTo(Build.VERSION_CODES.R) because this test also requires API 31
         // shims, and @IgnoreUpTo does not check that.
         assumeTrue(TestUtils.shouldTestSApis());
+        assumeTrue(mPackageManager.hasSystemFeature(FEATURE_WIFI));
 
         final TestNetworkTracker tnt = callWithShellPermissionIdentity(
                 () -> initTestNetwork(mContext, TEST_LINKADDR, NETWORK_CALLBACK_TIMEOUT_MS));
@@ -2721,7 +2722,8 @@
                     OemNetworkPreferences.OEM_NETWORK_PREFERENCE_TEST_ONLY);
             registerTestOemNetworkPreferenceCallbacks(defaultCallback, systemDefaultCallback);
             waitForAvailable(defaultCallback, tnt.getNetwork());
-            waitForAvailable(systemDefaultCallback, wifiNetwork);
+            systemDefaultCallback.eventuallyExpect(CallbackEntry.AVAILABLE,
+                    NETWORK_CALLBACK_TIMEOUT_MS, cb -> wifiNetwork.equals(cb.getNetwork()));
         }, /* cleanup */ () -> {
                 runWithShellPermissionIdentity(tnt::teardown);
                 defaultCallback.expect(CallbackEntry.LOST, tnt, NETWORK_CALLBACK_TIMEOUT_MS);
diff --git a/tests/cts/net/src/android/net/cts/IpSecManagerTest.java b/tests/cts/net/src/android/net/cts/IpSecManagerTest.java
index 9c30811..f935cef 100644
--- a/tests/cts/net/src/android/net/cts/IpSecManagerTest.java
+++ b/tests/cts/net/src/android/net/cts/IpSecManagerTest.java
@@ -364,10 +364,20 @@
         });
     }
 
-    private void assumeExperimentalIpv6UdpEncapSupported() throws Exception {
+    private static boolean isIpv6UdpEncapSupportedByKernel() {
+        return isKernelVersionAtLeast("5.15.31")
+                || (isKernelVersionAtLeast("5.10.108") && !isKernelVersionAtLeast("5.15.0"));
+    }
+
+    // Packet private for use in IpSecManagerTunnelTest
+    static boolean isIpv6UdpEncapSupported() {
+        return SdkLevel.isAtLeastU() && isIpv6UdpEncapSupportedByKernel();
+    }
+
+    // Packet private for use in IpSecManagerTunnelTest
+    static void assumeExperimentalIpv6UdpEncapSupported() throws Exception {
         assumeTrue("Not supported before U", SdkLevel.isAtLeastU());
-        assumeTrue("Not supported by kernel", isKernelVersionAtLeast("5.15.31")
-                || (isKernelVersionAtLeast("5.10.108") && !isKernelVersionAtLeast("5.15.0")));
+        assumeTrue("Not supported by kernel", isIpv6UdpEncapSupportedByKernel());
     }
 
     @Test
diff --git a/tests/cts/net/src/android/net/cts/IpSecManagerTunnelTest.java b/tests/cts/net/src/android/net/cts/IpSecManagerTunnelTest.java
index 5fc3068..1ede5c1 100644
--- a/tests/cts/net/src/android/net/cts/IpSecManagerTunnelTest.java
+++ b/tests/cts/net/src/android/net/cts/IpSecManagerTunnelTest.java
@@ -18,6 +18,8 @@
 
 import static android.app.AppOpsManager.OP_MANAGE_IPSEC_TUNNELS;
 import static android.net.IpSecManager.UdpEncapsulationSocket;
+import static android.net.cts.IpSecManagerTest.assumeExperimentalIpv6UdpEncapSupported;
+import static android.net.cts.IpSecManagerTest.isIpv6UdpEncapSupported;
 import static android.net.cts.PacketUtils.AES_CBC_BLK_SIZE;
 import static android.net.cts.PacketUtils.AES_CBC_IV_LEN;
 import static android.net.cts.PacketUtils.BytePayload;
@@ -76,6 +78,7 @@
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 
+// TODO: b/268552823 Improve the readability of IpSecManagerTunnelTest
 @RunWith(AndroidJUnit4.class)
 @AppModeFull(reason = "MANAGE_TEST_NETWORKS permission can't be granted to instant apps")
 public class IpSecManagerTunnelTest extends IpSecBaseTest {
@@ -83,11 +86,6 @@
 
     private static final String TAG = IpSecManagerTunnelTest.class.getSimpleName();
 
-    // Redefine this flag here so that IPsec code shipped in a mainline module can build on old
-    // platforms before FEATURE_IPSEC_TUNNEL_MIGRATION API is released.
-    private static final String FEATURE_IPSEC_TUNNEL_MIGRATION =
-            "android.software.ipsec_tunnel_migration";
-
     private static final InetAddress LOCAL_OUTER_4 = InetAddress.parseNumericAddress("192.0.2.1");
     private static final InetAddress REMOTE_OUTER_4 = InetAddress.parseNumericAddress("192.0.2.2");
     private static final InetAddress LOCAL_OUTER_6 =
@@ -115,6 +113,7 @@
 
     private static final int IP4_PREFIX_LEN = 32;
     private static final int IP6_PREFIX_LEN = 128;
+    private static final int IP6_UDP_ENCAP_SOCKET_PORT_ANY = 65536;
 
     private static final int TIMEOUT_MS = 500;
 
@@ -263,14 +262,23 @@
          *
          * @param ipsecNetwork The IPsec Interface based Network for binding sockets on
          * @param tunnelIface The IPsec tunnel interface that will be tested
-         * @param underlyingTunUtils The utility of the IPsec tunnel interface's underlying TUN
-         *     network
-         * @return the integer port of the inner socket if outbound, or 0 if inbound
-         *     IpSecTunnelTestRunnable
+         * @param tunUtils The utility of the IPsec tunnel interface's underlying TUN network
+         * @param inTunnelTransform The inbound tunnel mode transform
+         * @param outTunnelTransform The outbound tunnel mode transform
+         * @param localOuter The local address of the outer IP packet
+         * @param remoteOuter The remote address of the outer IP packet
+         * @param seqNum The expected sequence number of the inbound packet
          * @throws Exception if any part of the test failed.
          */
         public abstract int run(
-                Network ipsecNetwork, IpSecTunnelInterface tunnelIface, TunUtils underlyingTunUtils)
+                Network ipsecNetwork,
+                IpSecTunnelInterface tunnelIface,
+                TunUtils tunUtils,
+                IpSecTransform inTunnelTransform,
+                IpSecTransform outTunnelTransform,
+                InetAddress localOuter,
+                InetAddress remoteOuter,
+                int seqNum)
                 throws Exception;
     }
 
@@ -305,19 +313,41 @@
         return expectedPacketSize;
     }
 
+    private UdpEncapsulationSocket openUdpEncapsulationSocket(int ipVersion) throws Exception {
+        if (ipVersion == AF_INET) {
+            return mISM.openUdpEncapsulationSocket();
+        }
+
+        if (!isIpv6UdpEncapSupported()) {
+            throw new UnsupportedOperationException("IPv6 UDP encapsulation unsupported");
+        }
+
+        return mISM.openUdpEncapsulationSocket(IP6_UDP_ENCAP_SOCKET_PORT_ANY);
+    }
+
     private interface IpSecTunnelTestRunnableFactory {
+        /**
+         * Build a IpSecTunnelTestRunnable.
+         *
+         * @param transportInTunnelMode indicate if there needs to be a transport mode transform
+         *     inside the tunnel mode transform
+         * @param spi The IPsec SPI
+         * @param localInner The local address of the inner IP packet
+         * @param remoteInner The remote address of the inner IP packet
+         * @param inTransportTransform The inbound transport mode transform
+         * @param outTransportTransform The outbound transport mode transform
+         * @param encapSocket The UDP encapsulation socket or null
+         * @param innerSocketPort The inner socket port
+         */
         IpSecTunnelTestRunnable getIpSecTunnelTestRunnable(
                 boolean transportInTunnelMode,
                 int spi,
                 InetAddress localInner,
                 InetAddress remoteInner,
-                InetAddress localOuter,
-                InetAddress remoteOuter,
                 IpSecTransform inTransportTransform,
                 IpSecTransform outTransportTransform,
-                int encapPort,
-                int innerSocketPort,
-                int expectedPacketSize)
+                UdpEncapsulationSocket encapSocket,
+                int innerSocketPort)
                 throws Exception;
     }
 
@@ -327,17 +357,21 @@
                 int spi,
                 InetAddress localInner,
                 InetAddress remoteInner,
-                InetAddress localOuter,
-                InetAddress remoteOuter,
                 IpSecTransform inTransportTransform,
                 IpSecTransform outTransportTransform,
-                int encapPort,
-                int unusedInnerSocketPort,
-                int expectedPacketSize) {
+                UdpEncapsulationSocket encapSocket,
+                int unusedInnerSocketPort) {
             return new IpSecTunnelTestRunnable() {
                 @Override
                 public int run(
-                        Network ipsecNetwork, IpSecTunnelInterface tunnelIface, TunUtils tunUtils)
+                        Network ipsecNetwork,
+                        IpSecTunnelInterface tunnelIface,
+                        TunUtils tunUtils,
+                        IpSecTransform inTunnelTransform,
+                        IpSecTransform outTunnelTransform,
+                        InetAddress localOuter,
+                        InetAddress remoteOuter,
+                        int seqNum)
                         throws Exception {
                     // Build a socket and send traffic
                     JavaUdpSocket socket = new JavaUdpSocket(localInner);
@@ -357,9 +391,14 @@
                     // Verify that an encrypted packet is sent. As of right now, checking encrypted
                     // body is not possible, due to the test not knowing some of the fields of the
                     // inner IP header (flow label, flags, etc)
+                    int innerFamily = localInner instanceof Inet4Address ? AF_INET : AF_INET6;
+                    int outerFamily = localOuter instanceof Inet4Address ? AF_INET : AF_INET6;
+                    boolean useEncap = encapSocket != null;
+                    int expectedPacketSize =
+                            getPacketSize(
+                                    innerFamily, outerFamily, useEncap, transportInTunnelMode);
                     tunUtils.awaitEspPacketNoPlaintext(
-                            spi, TEST_DATA, encapPort != 0, expectedPacketSize);
-
+                            spi, TEST_DATA, useEncap, expectedPacketSize);
                     socket.close();
 
                     return innerSocketPort;
@@ -375,18 +414,22 @@
                 int spi,
                 InetAddress localInner,
                 InetAddress remoteInner,
-                InetAddress localOuter,
-                InetAddress remoteOuter,
                 IpSecTransform inTransportTransform,
                 IpSecTransform outTransportTransform,
-                int encapPort,
-                int innerSocketPort,
-                int expectedPacketSize)
+                UdpEncapsulationSocket encapSocket,
+                int innerSocketPort)
                 throws Exception {
             return new IpSecTunnelTestRunnable() {
                 @Override
                 public int run(
-                        Network ipsecNetwork, IpSecTunnelInterface tunnelIface, TunUtils tunUtils)
+                        Network ipsecNetwork,
+                        IpSecTunnelInterface tunnelIface,
+                        TunUtils tunUtils,
+                        IpSecTransform inTunnelTransform,
+                        IpSecTransform outTunnelTransform,
+                        InetAddress localOuter,
+                        InetAddress remoteOuter,
+                        int seqNum)
                         throws Exception {
                     // Build a socket and receive traffic
                     JavaUdpSocket socket = new JavaUdpSocket(localInner, innerSocketPort);
@@ -420,18 +463,22 @@
                 int spi,
                 InetAddress localInner,
                 InetAddress remoteInner,
-                InetAddress localOuter,
-                InetAddress remoteOuter,
                 IpSecTransform inTransportTransform,
                 IpSecTransform outTransportTransform,
-                int encapPort,
-                int innerSocketPort,
-                int expectedPacketSize)
+                UdpEncapsulationSocket encapSocket,
+                int innerSocketPort)
                 throws Exception {
             return new IpSecTunnelTestRunnable() {
                 @Override
                 public int run(
-                        Network ipsecNetwork, IpSecTunnelInterface tunnelIface, TunUtils tunUtils)
+                        Network ipsecNetwork,
+                        IpSecTunnelInterface tunnelIface,
+                        TunUtils tunUtils,
+                        IpSecTransform inTunnelTransform,
+                        IpSecTransform outTunnelTransform,
+                        InetAddress localOuter,
+                        InetAddress remoteOuter,
+                        int seqNum)
                         throws Exception {
                     // Build a socket and receive traffic
                     JavaUdpSocket socket = new JavaUdpSocket(localInner);
@@ -456,7 +503,8 @@
                                         remoteOuter,
                                         localOuter,
                                         socket.getPort(),
-                                        encapPort);
+                                        encapSocket != null ? encapSocket.getPort() : 0,
+                                        seqNum);
                     } else {
                         pkt =
                                 getTunnelModePacket(
@@ -466,7 +514,8 @@
                                         remoteOuter,
                                         localOuter,
                                         socket.getPort(),
-                                        encapPort);
+                                        encapSocket != null ? encapSocket.getPort() : 0,
+                                        seqNum);
                     }
                     tunUtils.injectPacket(pkt);
 
@@ -483,13 +532,16 @@
 
     private class MigrateIpSecTunnelTestRunnableFactory implements IpSecTunnelTestRunnableFactory {
         private final IpSecTunnelTestRunnableFactory mTestRunnableFactory;
+        private final boolean mTestEncapTypeChange;
 
-        MigrateIpSecTunnelTestRunnableFactory(boolean isOutputTest) {
+        MigrateIpSecTunnelTestRunnableFactory(boolean isOutputTest, boolean testEncapTypeChange) {
             if (isOutputTest) {
                 mTestRunnableFactory = new OutputIpSecTunnelTestRunnableFactory();
             } else {
                 mTestRunnableFactory = new InputPacketGeneratorIpSecTunnelTestRunnableFactory();
             }
+
+            mTestEncapTypeChange = testEncapTypeChange;
         }
 
         @Override
@@ -498,17 +550,21 @@
                 int spi,
                 InetAddress localInner,
                 InetAddress remoteInner,
-                InetAddress localOuter,
-                InetAddress remoteOuter,
                 IpSecTransform inTransportTransform,
                 IpSecTransform outTransportTransform,
-                int encapPort,
-                int unusedInnerSocketPort,
-                int expectedPacketSize) {
+                UdpEncapsulationSocket encapSocket,
+                int unusedInnerSocketPort) {
             return new IpSecTunnelTestRunnable() {
                 @Override
                 public int run(
-                        Network ipsecNetwork, IpSecTunnelInterface tunnelIface, TunUtils tunUtils)
+                        Network ipsecNetwork,
+                        IpSecTunnelInterface tunnelIface,
+                        TunUtils tunUtils,
+                        IpSecTransform inTunnelTransform,
+                        IpSecTransform outTunnelTransform,
+                        InetAddress localOuter,
+                        InetAddress remoteOuter,
+                        int seqNum)
                         throws Exception {
                     mTestRunnableFactory
                             .getIpSecTunnelTestRunnable(
@@ -516,17 +572,25 @@
                                     spi,
                                     localInner,
                                     remoteInner,
-                                    localOuter,
-                                    remoteOuter,
                                     inTransportTransform,
                                     outTransportTransform,
-                                    encapPort,
-                                    unusedInnerSocketPort,
-                                    expectedPacketSize)
-                            .run(ipsecNetwork, tunnelIface, sTunWrapper.utils);
-
+                                    encapSocket,
+                                    unusedInnerSocketPort)
+                            .run(
+                                    ipsecNetwork,
+                                    tunnelIface,
+                                    tunUtils,
+                                    inTunnelTransform,
+                                    outTunnelTransform,
+                                    localOuter,
+                                    remoteOuter,
+                                    seqNum);
                     tunnelIface.setUnderlyingNetwork(sTunWrapperNew.network);
 
+                    final boolean useEncapBeforeMigrate = encapSocket != null;
+                    final boolean useEncapAfterMigrate =
+                            mTestEncapTypeChange ? !useEncapBeforeMigrate : useEncapBeforeMigrate;
+
                     // Verify migrating to IPv4 and IPv6 addresses. It ensures that not only
                     // can IPsec tunnel migrate across interfaces, IPsec tunnel can also migrate to
                     // a different address on the same interface.
@@ -535,21 +599,24 @@
                             remoteInner,
                             LOCAL_OUTER_4_NEW,
                             REMOTE_OUTER_4_NEW,
-                            encapPort != 0,
+                            useEncapAfterMigrate,
                             transportInTunnelMode,
                             sTunWrapperNew.utils,
                             tunnelIface,
                             ipsecNetwork);
-                    checkMigratedTunnel(
-                            localInner,
-                            remoteInner,
-                            LOCAL_OUTER_6_NEW,
-                            REMOTE_OUTER_6_NEW,
-                            false, // IPv6 does not support UDP encapsulation
-                            transportInTunnelMode,
-                            sTunWrapperNew.utils,
-                            tunnelIface,
-                            ipsecNetwork);
+
+                    if (!useEncapAfterMigrate || isIpv6UdpEncapSupported()) {
+                        checkMigratedTunnel(
+                                localInner,
+                                remoteInner,
+                                LOCAL_OUTER_6_NEW,
+                                REMOTE_OUTER_6_NEW,
+                                useEncapAfterMigrate,
+                                transportInTunnelMode,
+                                sTunWrapperNew.utils,
+                                tunnelIface,
+                                ipsecNetwork);
+                    }
 
                     return 0;
                 }
@@ -589,7 +656,8 @@
                             buildIpSecTransform(sContext, inTransportSpi, null, remoteInner);
                     IpSecTransform outTransportTransform =
                             buildIpSecTransform(sContext, outTransportSpi, null, localInner);
-                    UdpEncapsulationSocket encapSocket = mISM.openUdpEncapsulationSocket()) {
+                    UdpEncapsulationSocket encapSocket =
+                            useEncap ? openUdpEncapsulationSocket(outerFamily) : null) {
 
                 // Configure tunnel mode Transform parameters
                 IpSecTransform.Builder transformBuilder = new IpSecTransform.Builder(sContext);
@@ -599,7 +667,7 @@
                         new IpSecAlgorithm(
                                 IpSecAlgorithm.AUTH_HMAC_SHA256, AUTH_KEY, AUTH_KEY.length * 4));
 
-                if (useEncap) {
+                if (encapSocket != null) {
                     transformBuilder.setIpv4Encapsulation(encapSocket, encapSocket.getPort());
                 }
 
@@ -623,19 +691,152 @@
                                     spi,
                                     localInner,
                                     remoteInner,
-                                    localOuter,
-                                    remoteOuter,
                                     inTransportTransform,
                                     outTransportTransform,
-                                    useEncap ? encapSocket.getPort() : 0,
-                                    0,
-                                    expectedPacketSize)
-                            .run(ipsecNetwork, tunnelIface, tunUtils);
+                                    encapSocket,
+                                    0)
+                            .run(
+                                    ipsecNetwork,
+                                    tunnelIface,
+                                    tunUtils,
+                                    inTransform,
+                                    outTransform,
+                                    localOuter,
+                                    remoteOuter,
+                                    1 /* seqNum */);
                 }
             }
         }
     }
 
+    private class MigrateTunnelModeIpSecTransformTestRunnableFactory
+            implements IpSecTunnelTestRunnableFactory {
+        private final IpSecTunnelTestRunnableFactory mTestRunnableFactory;
+
+        MigrateTunnelModeIpSecTransformTestRunnableFactory(boolean isOutputTest) {
+            if (isOutputTest) {
+                mTestRunnableFactory = new OutputIpSecTunnelTestRunnableFactory();
+            } else {
+                mTestRunnableFactory = new InputPacketGeneratorIpSecTunnelTestRunnableFactory();
+            }
+        }
+
+        @Override
+        public IpSecTunnelTestRunnable getIpSecTunnelTestRunnable(
+                boolean transportInTunnelMode,
+                int spi,
+                InetAddress localInner,
+                InetAddress remoteInner,
+                IpSecTransform inTransportTransform,
+                IpSecTransform outTransportTransform,
+                UdpEncapsulationSocket encapSocket,
+                int unusedInnerSocketPort) {
+            return new IpSecTunnelTestRunnable() {
+                @Override
+                public int run(
+                        Network ipsecNetwork,
+                        IpSecTunnelInterface tunnelIface,
+                        TunUtils tunUtils,
+                        IpSecTransform inTunnelTransform,
+                        IpSecTransform outTunnelTransform,
+                        InetAddress localOuter,
+                        InetAddress remoteOuter,
+                        int seqNum)
+                        throws Exception {
+                    final IpSecTunnelTestRunnable testRunnable =
+                            mTestRunnableFactory.getIpSecTunnelTestRunnable(
+                                    transportInTunnelMode,
+                                    spi,
+                                    localInner,
+                                    remoteInner,
+                                    inTransportTransform,
+                                    outTransportTransform,
+                                    encapSocket,
+                                    unusedInnerSocketPort);
+                    testRunnable.run(
+                            ipsecNetwork,
+                            tunnelIface,
+                            tunUtils,
+                            inTunnelTransform,
+                            outTunnelTransform,
+                            localOuter,
+                            remoteOuter,
+                            seqNum++);
+
+                    tunnelIface.setUnderlyingNetwork(sTunWrapperNew.network);
+
+                    final boolean useEncap = encapSocket != null;
+                    if (useEncap) {
+                        sTunWrapperNew.network.bindSocket(encapSocket.getFileDescriptor());
+                    }
+
+                    // Updating UDP encapsulation socket is not supported. Thus this runnable will
+                    // only cover 1) migration from non-encap to non-encap and 2) migration from
+                    // encap to encap with the same family
+                    if (!useEncap || localOuter instanceof Inet4Address) {
+                        checkMigrateTunnelModeTransform(
+                                testRunnable,
+                                inTunnelTransform,
+                                outTunnelTransform,
+                                tunnelIface,
+                                ipsecNetwork,
+                                sTunWrapperNew.utils,
+                                LOCAL_OUTER_4_NEW,
+                                REMOTE_OUTER_4_NEW,
+                                seqNum++);
+                    }
+                    if (!useEncap || localOuter instanceof Inet6Address) {
+                        checkMigrateTunnelModeTransform(
+                                testRunnable,
+                                inTunnelTransform,
+                                outTunnelTransform,
+                                tunnelIface,
+                                ipsecNetwork,
+                                sTunWrapperNew.utils,
+                                LOCAL_OUTER_6_NEW,
+                                REMOTE_OUTER_6_NEW,
+                                seqNum++);
+                    }
+
+                    // Unused return value for MigrateTunnelModeIpSecTransformTest
+                    return 0;
+                }
+            };
+        }
+
+        private void checkMigrateTunnelModeTransform(
+                IpSecTunnelTestRunnable testRunnable,
+                IpSecTransform inTunnelTransform,
+                IpSecTransform outTunnelTransform,
+                IpSecTunnelInterface tunnelIface,
+                Network ipsecNetwork,
+                TunUtils tunUtils,
+                InetAddress newLocalOuter,
+                InetAddress newRemoteOuter,
+                int seqNum)
+                throws Exception {
+            mISM.startTunnelModeTransformMigration(
+                    inTunnelTransform, newRemoteOuter, newLocalOuter);
+            mISM.startTunnelModeTransformMigration(
+                    outTunnelTransform, newLocalOuter, newRemoteOuter);
+
+            mISM.applyTunnelModeTransform(
+                    tunnelIface, IpSecManager.DIRECTION_IN, inTunnelTransform);
+            mISM.applyTunnelModeTransform(
+                    tunnelIface, IpSecManager.DIRECTION_OUT, outTunnelTransform);
+
+            testRunnable.run(
+                    ipsecNetwork,
+                    tunnelIface,
+                    tunUtils,
+                    inTunnelTransform,
+                    outTunnelTransform,
+                    newLocalOuter,
+                    newRemoteOuter,
+                    seqNum);
+        }
+    }
+
     private void checkTunnelOutput(
             int innerFamily, int outerFamily, boolean useEncap, boolean transportInTunnelMode)
             throws Exception {
@@ -659,17 +860,36 @@
     }
 
     private void checkMigrateTunnelOutput(
-            int innerFamily, int outerFamily, boolean useEncap, boolean transportInTunnelMode)
+            int innerFamily,
+            int outerFamily,
+            boolean useEncap,
+            boolean transportInTunnelMode,
+            boolean isEncapTypeChanged)
             throws Exception {
         checkTunnel(
                 innerFamily,
                 outerFamily,
                 useEncap,
                 transportInTunnelMode,
-                new MigrateIpSecTunnelTestRunnableFactory(true));
+                new MigrateIpSecTunnelTestRunnableFactory(true, isEncapTypeChanged));
     }
 
     private void checkMigrateTunnelInput(
+            int innerFamily,
+            int outerFamily,
+            boolean useEncap,
+            boolean transportInTunnelMode,
+            boolean isEncapTypeChanged)
+            throws Exception {
+        checkTunnel(
+                innerFamily,
+                outerFamily,
+                useEncap,
+                transportInTunnelMode,
+                new MigrateIpSecTunnelTestRunnableFactory(false, isEncapTypeChanged));
+    }
+
+    private void checkMigrateTunnelModeTransformOutput(
             int innerFamily, int outerFamily, boolean useEncap, boolean transportInTunnelMode)
             throws Exception {
         checkTunnel(
@@ -677,7 +897,18 @@
                 outerFamily,
                 useEncap,
                 transportInTunnelMode,
-                new MigrateIpSecTunnelTestRunnableFactory(false));
+                new MigrateTunnelModeIpSecTransformTestRunnableFactory(true /* isOutputTest */));
+    }
+
+    private void checkMigrateTunnelModeTransformInput(
+            int innerFamily, int outerFamily, boolean useEncap, boolean transportInTunnelMode)
+            throws Exception {
+        checkTunnel(
+                innerFamily,
+                outerFamily,
+                useEncap,
+                transportInTunnelMode,
+                new MigrateTunnelModeIpSecTransformTestRunnableFactory(false /* isOutputTest */));
     }
 
     /**
@@ -709,7 +940,8 @@
                         buildIpSecTransform(sContext, inTransportSpi, null, remoteInner);
                 IpSecTransform outTransportTransform =
                         buildIpSecTransform(sContext, outTransportSpi, null, localInner);
-                UdpEncapsulationSocket encapSocket = mISM.openUdpEncapsulationSocket()) {
+                UdpEncapsulationSocket encapSocket =
+                        useEncap ? openUdpEncapsulationSocket(outerFamily) : null) {
 
             // Run output direction tests
             IpSecTunnelTestRunnable outputIpSecTunnelTestRunnable =
@@ -719,22 +951,19 @@
                                     spi,
                                     localInner,
                                     remoteInner,
-                                    localOuter,
-                                    remoteOuter,
                                     inTransportTransform,
                                     outTransportTransform,
-                                    useEncap ? encapSocket.getPort() : 0,
-                                    0,
-                                    expectedPacketSize);
+                                    encapSocket,
+                                    0);
             int innerSocketPort =
                     buildTunnelNetworkAndRunTests(
-                    localInner,
-                    remoteInner,
-                    localOuter,
-                    remoteOuter,
-                    spi,
-                    useEncap ? encapSocket : null,
-                    outputIpSecTunnelTestRunnable);
+                            localInner,
+                            remoteInner,
+                            localOuter,
+                            remoteOuter,
+                            spi,
+                            encapSocket,
+                            outputIpSecTunnelTestRunnable);
 
             // Input direction tests, with matching inner socket ports.
             IpSecTunnelTestRunnable inputIpSecTunnelTestRunnable =
@@ -744,20 +973,17 @@
                                     spi,
                                     remoteInner,
                                     localInner,
-                                    localOuter,
-                                    remoteOuter,
                                     inTransportTransform,
                                     outTransportTransform,
-                                    useEncap ? encapSocket.getPort() : 0,
-                                    innerSocketPort,
-                                    expectedPacketSize);
+                                    encapSocket,
+                                    innerSocketPort);
             buildTunnelNetworkAndRunTests(
                     remoteInner,
                     localInner,
                     localOuter,
                     remoteOuter,
                     spi,
-                    useEncap ? encapSocket : null,
+                    encapSocket,
                     inputIpSecTunnelTestRunnable);
         }
     }
@@ -791,7 +1017,8 @@
                         buildIpSecTransform(sContext, inTransportSpi, null, remoteInner);
                 IpSecTransform outTransportTransform =
                         buildIpSecTransform(sContext, outTransportSpi, null, localInner);
-                UdpEncapsulationSocket encapSocket = mISM.openUdpEncapsulationSocket()) {
+                UdpEncapsulationSocket encapSocket =
+                        useEncap ? openUdpEncapsulationSocket(outerFamily) : null) {
 
             buildTunnelNetworkAndRunTests(
                     localInner,
@@ -799,19 +1026,16 @@
                     localOuter,
                     remoteOuter,
                     spi,
-                    useEncap ? encapSocket : null,
+                    encapSocket,
                     factory.getIpSecTunnelTestRunnable(
                             transportInTunnelMode,
                             spi,
                             localInner,
                             remoteInner,
-                            localOuter,
-                            remoteOuter,
                             inTransportTransform,
                             outTransportTransform,
-                            useEncap ? encapSocket.getPort() : 0,
-                            0,
-                            expectedPacketSize));
+                            encapSocket,
+                            0));
         }
     }
 
@@ -859,6 +1083,7 @@
 
             if (encapSocket != null) {
                 transformBuilder.setIpv4Encapsulation(encapSocket, encapSocket.getPort());
+                sTunWrapper.network.bindSocket(encapSocket.getFileDescriptor());
             }
 
             // Apply transform and check that traffic is properly encrypted
@@ -870,7 +1095,16 @@
                 mISM.applyTunnelModeTransform(
                         tunnelIface, IpSecManager.DIRECTION_OUT, outTransform);
 
-                innerSocketPort = test.run(testNetwork, tunnelIface, sTunWrapper.utils);
+                innerSocketPort =
+                        test.run(
+                                testNetwork,
+                                tunnelIface,
+                                sTunWrapper.utils,
+                                inTransform,
+                                outTransform,
+                                localOuter,
+                                remoteOuter,
+                                1 /* seqNum */);
             }
 
             // Teardown the test network
@@ -909,13 +1143,14 @@
     }
 
     private EspHeader buildTransportModeEspPacket(
-            int spi, InetAddress src, InetAddress dst, int port, Payload payload) throws Exception {
+            int spi, int seqNum, InetAddress src, InetAddress dst, Payload payload)
+            throws Exception {
         IpHeader preEspIpHeader = getIpHeader(payload.getProtocolId(), src, dst, payload);
 
         return new EspHeader(
                 payload.getProtocolId(),
                 spi,
-                1, // sequence number
+                seqNum,
                 CRYPT_KEY, // Same key for auth and crypt
                 payload.getPacketBytes(preEspIpHeader));
     }
@@ -928,13 +1163,14 @@
             InetAddress dstOuter,
             int port,
             int encapPort,
+            int seqNum,
             Payload payload)
             throws Exception {
         IpHeader innerIp = getIpHeader(payload.getProtocolId(), srcInner, dstInner, payload);
         return new EspHeader(
                 innerIp.getProtocolId(),
                 spi,
-                1, // sequence number
+                seqNum, // sequence number
                 CRYPT_KEY, // Same key for auth and crypt
                 innerIp.getPacketBytes());
     }
@@ -958,13 +1194,14 @@
             InetAddress srcOuter,
             InetAddress dstOuter,
             int port,
-            int encapPort)
+            int encapPort,
+            int seqNum)
             throws Exception {
         UdpHeader udp = new UdpHeader(port, port, new BytePayload(TEST_DATA));
 
         EspHeader espPayload =
                 buildTunnelModeEspPacket(
-                        spi, srcInner, dstInner, srcOuter, dstOuter, port, encapPort, udp);
+                        spi, srcInner, dstInner, srcOuter, dstOuter, port, encapPort, seqNum, udp);
         return maybeEncapPacket(srcOuter, dstOuter, encapPort, espPayload).getPacketBytes();
     }
 
@@ -976,11 +1213,13 @@
             InetAddress srcOuter,
             InetAddress dstOuter,
             int port,
-            int encapPort)
+            int encapPort,
+            int seqNum)
             throws Exception {
         UdpHeader udp = new UdpHeader(port, port, new BytePayload(TEST_DATA));
 
-        EspHeader espPayload = buildTransportModeEspPacket(spiInner, srcInner, dstInner, port, udp);
+        EspHeader espPayload =
+                buildTransportModeEspPacket(spiInner, seqNum, srcInner, dstInner, udp);
         espPayload =
                 buildTunnelModeEspPacket(
                         spiOuter,
@@ -990,21 +1229,56 @@
                         dstOuter,
                         port,
                         encapPort,
+                        seqNum,
                         espPayload);
         return maybeEncapPacket(srcOuter, dstOuter, encapPort, espPayload).getPacketBytes();
     }
 
     private void doTestMigrateTunnel(
+            int innerFamily,
+            int outerFamily,
+            boolean useEncap,
+            boolean transportInTunnelMode,
+            boolean testEncapTypeChange)
+            throws Exception {
+        assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
+        checkMigrateTunnelOutput(
+                innerFamily, outerFamily, useEncap, transportInTunnelMode, testEncapTypeChange);
+        checkMigrateTunnelInput(
+                innerFamily, outerFamily, useEncap, transportInTunnelMode, testEncapTypeChange);
+    }
+
+    private void doTestMigrateTunnel(
+            int innerFamily, int outerFamily, boolean useEncap, boolean transportInTunnelMode)
+            throws Exception {
+        doTestMigrateTunnel(
+                innerFamily,
+                outerFamily,
+                useEncap,
+                transportInTunnelMode,
+                false /* testEncapTypeChange */);
+    }
+
+    private void doTestMigrateTunnelWithEncapTypeChange(
+            int innerFamily, int outerFamily, boolean useEncap, boolean transportInTunnelMode)
+            throws Exception {
+        doTestMigrateTunnel(
+                innerFamily,
+                outerFamily,
+                useEncap,
+                transportInTunnelMode,
+                true /* testEncapTypeChange */);
+    }
+
+    private void doTestMigrateTunnelModeTransform(
             int innerFamily, int outerFamily, boolean useEncap, boolean transportInTunnelMode)
             throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
-        checkTunnelOutput(innerFamily, outerFamily, useEncap, transportInTunnelMode);
-        checkTunnelInput(innerFamily, outerFamily, useEncap, transportInTunnelMode);
-    }
-
-    /** Checks if FEATURE_IPSEC_TUNNEL_MIGRATION is enabled on the device */
-    private static boolean hasIpsecTunnelMigrateFeature() {
-        return sContext.getPackageManager().hasSystemFeature(FEATURE_IPSEC_TUNNEL_MIGRATION);
+        assumeTrue(mCtsNetUtils.hasIpsecTunnelMigrateFeature());
+        checkMigrateTunnelModeTransformOutput(
+                innerFamily, outerFamily, useEncap, transportInTunnelMode);
+        checkMigrateTunnelModeTransformInput(
+                innerFamily, outerFamily, useEncap, transportInTunnelMode);
     }
 
     @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
@@ -1012,28 +1286,7 @@
     public void testHasIpSecTunnelMigrateFeature() throws Exception {
         // FEATURE_IPSEC_TUNNEL_MIGRATION is required when VSR API is U/U+
         if (getVsrApiLevel() > Build.VERSION_CODES.TIRAMISU) {
-            assertTrue(hasIpsecTunnelMigrateFeature());
-        }
-    }
-
-    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
-    @Test
-    public void testMigrateTunnelModeTransform() throws Exception {
-        assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
-        assumeTrue(hasIpsecTunnelMigrateFeature());
-
-        IpSecTransform.Builder transformBuilder = new IpSecTransform.Builder(sContext);
-        transformBuilder.setEncryption(new IpSecAlgorithm(IpSecAlgorithm.CRYPT_AES_CBC, CRYPT_KEY));
-        transformBuilder.setAuthentication(
-                new IpSecAlgorithm(IpSecAlgorithm.AUTH_HMAC_SHA256, AUTH_KEY, AUTH_KEY.length * 4));
-        int spi = getRandomSpi(LOCAL_OUTER_4, REMOTE_OUTER_4);
-
-        try (IpSecManager.SecurityParameterIndex outSpi =
-                        mISM.allocateSecurityParameterIndex(REMOTE_OUTER_4, spi);
-                IpSecTransform outTunnelTransform =
-                        transformBuilder.buildTunnelModeTransform(LOCAL_INNER_4, outSpi)) {
-            mISM.startTunnelModeTransformMigration(
-                    outTunnelTransform, LOCAL_OUTER_4_NEW, REMOTE_OUTER_4_NEW);
+            assertTrue(mCtsNetUtils.hasIpsecTunnelMigrateFeature());
         }
     }
 
@@ -1051,6 +1304,12 @@
         doTestMigrateTunnel(AF_INET, AF_INET, false, true);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTransportInTunnelModeV4InV4_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET, AF_INET, false, true);
+    }
+
     @Test
     public void testTransportInTunnelModeV4InV4Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1070,6 +1329,12 @@
         doTestMigrateTunnel(AF_INET, AF_INET, true, true);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTransportInTunnelModeV4InV4UdpEncap_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET, AF_INET, true, true);
+    }
+
     @Test
     public void testTransportInTunnelModeV4InV4UdpEncapReflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1089,6 +1354,12 @@
         doTestMigrateTunnel(AF_INET, AF_INET6, false, true);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTransportInTunnelModeV4InV6_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET, AF_INET6, false, true);
+    }
+
     @Test
     public void testTransportInTunnelModeV4InV6Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1108,6 +1379,12 @@
         doTestMigrateTunnel(AF_INET6, AF_INET, false, true);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTransportInTunnelModeV6InV4_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET6, AF_INET, false, true);
+    }
+
     @Test
     public void testTransportInTunnelModeV6InV4Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1127,6 +1404,12 @@
         doTestMigrateTunnel(AF_INET6, AF_INET, true, true);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTransportInTunnelModeV6InV4UdpEncap_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET6, AF_INET, true, true);
+    }
+
     @Test
     public void testTransportInTunnelModeV6InV4UdpEncapReflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1146,6 +1429,12 @@
         doTestMigrateTunnel(AF_INET, AF_INET6, false, true);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTransportInTunnelModeV6InV6_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET, AF_INET6, false, true);
+    }
+
     @Test
     public void testTransportInTunnelModeV6InV6Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1166,6 +1455,12 @@
         doTestMigrateTunnel(AF_INET, AF_INET, false, false);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTunnelV4InV4_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET, AF_INET, false, false);
+    }
+
     @Test
     public void testTunnelV4InV4Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1185,6 +1480,12 @@
         doTestMigrateTunnel(AF_INET, AF_INET, true, false);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTunnelV4InV4UdpEncap_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET, AF_INET, true, false);
+    }
+
     @Test
     public void testTunnelV4InV4UdpEncapReflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1204,6 +1505,12 @@
         doTestMigrateTunnel(AF_INET, AF_INET6, false, false);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTunnelV4InV6_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET, AF_INET6, false, false);
+    }
+
     @Test
     public void testTunnelV4InV6Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1223,6 +1530,12 @@
         doTestMigrateTunnel(AF_INET6, AF_INET, false, false);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTunnelV6InV4_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET6, AF_INET, false, false);
+    }
+
     @Test
     public void testTunnelV6InV4Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1242,6 +1555,12 @@
         doTestMigrateTunnel(AF_INET6, AF_INET, true, false);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTunnelV6InV4UdpEncap_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET6, AF_INET, true, false);
+    }
+
     @Test
     public void testTunnelV6InV4UdpEncapReflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
@@ -1261,9 +1580,115 @@
         doTestMigrateTunnel(AF_INET6, AF_INET6, false, false);
     }
 
+    @IgnoreUpTo(Build.VERSION_CODES.R)
+    @Test
+    public void testMigrateTunnelV6InV6_EncapTypeChange() throws Exception {
+        doTestMigrateTunnelWithEncapTypeChange(AF_INET6, AF_INET6, false, false);
+    }
+
     @Test
     public void testTunnelV6InV6Reflected() throws Exception {
         assumeTrue(mCtsNetUtils.hasIpsecTunnelsFeature());
         checkTunnelReflected(AF_INET6, AF_INET6, false, false);
     }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV4InV4() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET, false, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV6InV4() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET6, AF_INET, false, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV4InV6() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET6, false, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV6InV6() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET6, false, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV4InV4UdpEncap() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET, true, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV6InV4UdpEncap() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET6, AF_INET, true, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV4InV6UdpEncap() throws Exception {
+        assumeExperimentalIpv6UdpEncapSupported();
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET6, true, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTransportInTunnelModeV6InV6UdpEncap() throws Exception {
+        assumeExperimentalIpv6UdpEncapSupported();
+        doTestMigrateTunnelModeTransform(AF_INET6, AF_INET6, true, true);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV4InV4() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET, false, false);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV6InV4() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET6, AF_INET, false, false);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV4InV6() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET6, false, false);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV6InV6() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET6, AF_INET6, false, false);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV4InV4UdpEncap() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET, true, false);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV6InV4UdpEncap() throws Exception {
+        doTestMigrateTunnelModeTransform(AF_INET6, AF_INET, true, false);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV4InV6UdpEncap() throws Exception {
+        assumeExperimentalIpv6UdpEncapSupported();
+        doTestMigrateTunnelModeTransform(AF_INET, AF_INET6, true, false);
+    }
+
+    @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    public void testMigrateTransformTunnelV6InV6UdpEncap() throws Exception {
+        assumeExperimentalIpv6UdpEncapSupported();
+        doTestMigrateTunnelModeTransform(AF_INET6, AF_INET6, true, false);
+    }
 }
diff --git a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt
index f578ff3..b535a8f 100644
--- a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt
+++ b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt
@@ -191,6 +191,7 @@
         callbacksToCleanUp.forEach { mCM.unregisterNetworkCallback(it) }
         qosTestSocket?.close()
         mHandlerThread.quitSafely()
+        mHandlerThread.join()
         instrumentation.getUiAutomation().dropShellPermissionIdentity()
     }
 
diff --git a/tests/cts/net/src/android/net/cts/NetworkScoreTest.kt b/tests/cts/net/src/android/net/cts/NetworkScoreTest.kt
index eb41d71..fcfecad 100644
--- a/tests/cts/net/src/android/net/cts/NetworkScoreTest.kt
+++ b/tests/cts/net/src/android/net/cts/NetworkScoreTest.kt
@@ -90,6 +90,7 @@
         mCm.unregisterNetworkCallback(agentCleanUpCb)
 
         mHandlerThread.quitSafely()
+        mHandlerThread.join()
         callbacksToCleanUp.forEach { mCm.unregisterNetworkCallback(it) }
     }
 
diff --git a/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt b/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt
index 8e98dba..621af23 100644
--- a/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt
+++ b/tests/cts/net/src/android/net/cts/NetworkValidationTest.kt
@@ -146,6 +146,7 @@
         httpServer.stop()
         handlerThread.threadHandler.post { reader.stop() }
         handlerThread.quitSafely()
+        handlerThread.join()
 
         iface.fileDescriptor.close()
     }
diff --git a/tests/cts/net/src/android/net/cts/NsdManagerTest.kt b/tests/cts/net/src/android/net/cts/NsdManagerTest.kt
index 3f197c4..db7f38c 100644
--- a/tests/cts/net/src/android/net/cts/NsdManagerTest.kt
+++ b/tests/cts/net/src/android/net/cts/NsdManagerTest.kt
@@ -68,6 +68,7 @@
 import android.system.ErrnoException
 import android.system.Os
 import android.system.OsConstants.AF_INET6
+import android.system.OsConstants.EADDRNOTAVAIL
 import android.system.OsConstants.ENETUNREACH
 import android.system.OsConstants.IPPROTO_UDP
 import android.system.OsConstants.SOCK_DGRAM
@@ -95,6 +96,8 @@
 import com.android.testutils.waitForIdle
 import java.io.File
 import java.io.IOException
+import java.net.Inet6Address
+import java.net.InetAddress
 import java.net.NetworkInterface
 import java.net.ServerSocket
 import java.nio.charset.StandardCharsets
@@ -131,6 +134,7 @@
 
 @AppModeFull(reason = "Socket cannot bind in instant app mode")
 @RunWith(AndroidJUnit4::class)
+@ConnectivityModuleTest
 class NsdManagerTest {
     // Rule used to filter CtsNetTestCasesMaxTargetSdkXX
     @get:Rule
@@ -313,6 +317,7 @@
         }
 
         override fun onStopResolutionFailed(si: NsdServiceInfo, err: Int) {
+            super.onStopResolutionFailed(si, err)
             add(StopResolutionFailed(si, err))
         }
     }
@@ -398,13 +403,20 @@
         // Wait until the link-local address can be used. Address flags are not available without
         // elevated permissions, so check that bindSocket works.
         PollingCheck.check("No usable v6 address on interface after $TIMEOUT_MS ms", TIMEOUT_MS) {
+            // To avoid race condition between socket connection succeeding and interface returning
+            // a non-empty address list. Verify that interface returns a non-empty list, before
+            // trying the socket connection.
+            if (NetworkInterface.getByName(ifaceName).interfaceAddresses.isEmpty()) {
+                return@check false
+            }
+
             val sock = Os.socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP)
             tryTest {
                 network.bindSocket(sock)
                 Os.connect(sock, parseNumericAddress("ff02::fb%$ifaceName"), 12345)
                 true
             }.catch<ErrnoException> {
-                if (it.errno != ENETUNREACH) {
+                if (it.errno != ENETUNREACH && it.errno != EADDRNOTAVAIL) {
                     throw it
                 }
                 false
@@ -431,6 +443,7 @@
         }
         handlerThread.waitForIdle(TIMEOUT_MS)
         handlerThread.quitSafely()
+        handlerThread.join()
     }
 
     @Test
@@ -694,6 +707,20 @@
         }
     }
 
+    private fun checkAddressScopeId(iface: TestNetworkInterface, address: List<InetAddress>) {
+        val targetSdkVersion = context.packageManager
+            .getTargetSdkVersion(context.applicationInfo.packageName)
+        if (targetSdkVersion <= Build.VERSION_CODES.TIRAMISU) {
+            return
+        }
+        val ifaceIdx = NetworkInterface.getByName(iface.interfaceName).index
+        address.forEach {
+            if (it is Inet6Address && it.isLinkLocalAddress) {
+                assertEquals(ifaceIdx, it.scopeId)
+            }
+        }
+    }
+
     @Test
     fun testNsdManager_ResolveOnNetwork() {
         // This test requires shims supporting T+ APIs (NsdServiceInfo.network)
@@ -729,6 +756,7 @@
                 assertEquals(registeredInfo.serviceName, it.serviceName)
                 assertEquals(si.port, it.port)
                 assertEquals(testNetwork1.network, nsdShim.getNetwork(it))
+                checkAddressScopeId(testNetwork1.iface, it.hostAddresses)
             }
             // TODO: check that MDNS packets are sent only on testNetwork1.
         } cleanupStep {
@@ -968,6 +996,7 @@
             for (hostAddress in hostAddresses) {
                 assertTrue(addresses.contains(hostAddress))
             }
+            checkAddressScopeId(testNetwork1.iface, serviceInfoCb.serviceInfo.hostAddresses)
         } cleanupStep {
             nsdManager.unregisterService(registrationRecord)
             registrationRecord.expectCallback<ServiceUnregistered>()
@@ -983,6 +1012,24 @@
         }
     }
 
+    @Test
+    fun testStopServiceResolutionFailedCallback() {
+        // This test requires shims supporting U+ APIs (NsdManager.stopServiceResolution)
+        assumeTrue(TestUtils.shouldTestUApis())
+
+        // It's not possible to make ResolutionListener#onStopResolutionFailed callback sending
+        // because it is only sent in very edge-case scenarios when the legacy implementation is
+        // used, and the legacy implementation is never used in the current AOSP builds. Considering
+        // that this callback isn't expected to be sent at all at the moment, and this is just an
+        // interface with no implementation. To verify this callback, just call
+        // onStopResolutionFailed on the record directly then verify it is received.
+        val resolveRecord = NsdResolveRecord()
+        resolveRecord.onStopResolutionFailed(
+                NsdServiceInfo(), NsdManager.FAILURE_OPERATION_NOT_RUNNING)
+        val failedCb = resolveRecord.expectCallback<StopResolutionFailed>()
+        assertEquals(NsdManager.FAILURE_OPERATION_NOT_RUNNING, failedCb.errorCode)
+    }
+
     /**
      * Register a service and return its registration record.
      */
diff --git a/tests/cts/net/src/android/net/cts/TunUtils.java b/tests/cts/net/src/android/net/cts/TunUtils.java
index 0377160..268d8d2 100644
--- a/tests/cts/net/src/android/net/cts/TunUtils.java
+++ b/tests/cts/net/src/android/net/cts/TunUtils.java
@@ -22,7 +22,6 @@
 import static android.net.cts.PacketUtils.UDP_HDRLEN;
 import static android.system.OsConstants.IPPROTO_UDP;
 
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
 import android.os.ParcelFileDescriptor;
@@ -32,6 +31,7 @@
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -140,10 +140,8 @@
     public byte[] awaitEspPacketNoPlaintext(
             int spi, byte[] plaintext, boolean useEncap, int expectedPacketSize) throws Exception {
         final byte[] espPkt = awaitPacket(
-                (pkt) -> isEspFailIfSpecifiedPlaintextFound(pkt, spi, useEncap, plaintext));
-
-        // Validate packet size
-        assertEquals(expectedPacketSize, espPkt.length);
+            (pkt) -> expectedPacketSize == pkt.length
+                    && isEspFailIfSpecifiedPlaintextFound(pkt, spi, useEncap, plaintext));
 
         return espPkt; // We've found the packet we're looking for.
     }
@@ -153,11 +151,11 @@
     }
 
     private static boolean isSpiEqual(byte[] pkt, int espOffset, int spi) {
-        // Check SPI byte by byte.
-        return pkt[espOffset] == (byte) ((spi >>> 24) & 0xff)
-                && pkt[espOffset + 1] == (byte) ((spi >>> 16) & 0xff)
-                && pkt[espOffset + 2] == (byte) ((spi >>> 8) & 0xff)
-                && pkt[espOffset + 3] == (byte) (spi & 0xff);
+        ByteBuffer buffer = ByteBuffer.wrap(pkt);
+        buffer.get(new byte[espOffset]); // Skip IP, UDP header
+        int actualSpi = buffer.getInt();
+
+        return actualSpi == spi;
     }
 
     /**
@@ -180,8 +178,13 @@
 
     private static boolean isEsp(byte[] pkt, int spi, boolean encap) {
         if (isIpv6(pkt)) {
-            // IPv6 UDP encap not supported by kernels; assume non-encap.
-            return pkt[IP6_PROTO_OFFSET] == IPPROTO_ESP && isSpiEqual(pkt, IP6_HDRLEN, spi);
+            if (encap) {
+                return pkt[IP6_PROTO_OFFSET] == IPPROTO_UDP
+                        && isSpiEqual(pkt, IP6_HDRLEN + UDP_HDRLEN, spi);
+            } else {
+                return pkt[IP6_PROTO_OFFSET] == IPPROTO_ESP && isSpiEqual(pkt, IP6_HDRLEN, spi);
+            }
+
         } else {
             // Use default IPv4 header length (assuming no options)
             if (encap) {
diff --git a/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java b/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java
index df3a4aa..d817630 100644
--- a/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java
+++ b/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java
@@ -75,6 +75,13 @@
 
 public final class CtsNetUtils {
     private static final String TAG = CtsNetUtils.class.getSimpleName();
+
+    // Redefine this flag here so that IPsec code shipped in a mainline module can build on old
+    // platforms before FEATURE_IPSEC_TUNNEL_MIGRATION API is released.
+    // TODO: b/275378783 Remove this flag and use the platform API when it is available.
+    private static final String FEATURE_IPSEC_TUNNEL_MIGRATION =
+            "android.software.ipsec_tunnel_migration";
+
     private static final int SOCKET_TIMEOUT_MS = 2000;
     private static final int PRIVATE_DNS_PROBE_MS = 1_000;
 
@@ -115,6 +122,11 @@
                 || getFirstApiLevel() >= Build.VERSION_CODES.Q;
     }
 
+    /** Checks if FEATURE_IPSEC_TUNNEL_MIGRATION is enabled on the device */
+    public boolean hasIpsecTunnelMigrateFeature() {
+        return mContext.getPackageManager().hasSystemFeature(FEATURE_IPSEC_TUNNEL_MIGRATION);
+    }
+
     /**
      * Sets the given appop using shell commands
      *
diff --git a/tests/cts/tethering/Android.bp b/tests/cts/tethering/Android.bp
index 42949a4..4284f56 100644
--- a/tests/cts/tethering/Android.bp
+++ b/tests/cts/tethering/Android.bp
@@ -46,6 +46,7 @@
 
     // Change to system current when TetheringManager move to bootclass path.
     platform_apis: true,
+    host_required: ["net-tests-utils-host-common"],
 }
 
 // Tethering CTS tests that target the latest released SDK. These tests can be installed on release
diff --git a/tests/cts/tethering/AndroidTestTemplate.xml b/tests/cts/tethering/AndroidTestTemplate.xml
index 491b004..c842c09 100644
--- a/tests/cts/tethering/AndroidTestTemplate.xml
+++ b/tests/cts/tethering/AndroidTestTemplate.xml
@@ -25,6 +25,8 @@
         <option name="cleanup-apks" value="true" />
         <option name="test-file-name" value="{MODULE}.apk" />
     </target_preparer>
+    <target_preparer class="com.android.testutils.ConnectivityCheckTargetPreparer">
+    </target_preparer>
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="android.tethering.cts" />
     </test>
diff --git a/tests/integration/Android.bp b/tests/integration/Android.bp
index e3d80a0..12919ae 100644
--- a/tests/integration/Android.bp
+++ b/tests/integration/Android.bp
@@ -21,7 +21,10 @@
 
 android_test {
     name: "FrameworksNetIntegrationTests",
-    defaults: ["framework-connectivity-internal-test-defaults"],
+    defaults: [
+        "framework-connectivity-internal-test-defaults",
+        "NetworkStackApiShimSettingsForCurrentBranch",
+    ],
     platform_apis: true,
     certificate: "platform",
     srcs: [
@@ -33,6 +36,13 @@
         "ServiceConnectivityResources",
     ],
     static_libs: [
+        // It does not matter if NetworkStackApiStableLib or NetworkStackApiCurrentLib is used here,
+        // since the shims for the branch are already included via
+        // NetworkStackApiShimSettingsForCurrentBranch, and will be used in priority as they are
+        // first in the classpath.
+        // If the wrong shims are used for some reason, tests that use newer APIs fail.
+        // TODO: have NetworkStackApiStableLib link dynamically against the shims to remove this
+        // order-dependent setup.
         "NetworkStackApiStableLib",
         "androidx.test.ext.junit",
         "frameworks-net-integration-testutils",
diff --git a/tests/unit/java/android/net/NetworkTemplateTest.kt b/tests/unit/java/android/net/NetworkTemplateTest.kt
index fc25fd8..2f6c76b 100644
--- a/tests/unit/java/android/net/NetworkTemplateTest.kt
+++ b/tests/unit/java/android/net/NetworkTemplateTest.kt
@@ -50,16 +50,17 @@
 import com.android.testutils.DevSdkIgnoreRule
 import com.android.testutils.DevSdkIgnoreRunner
 import com.android.testutils.assertParcelSane
+import kotlin.test.assertEquals
+import kotlin.test.assertFalse
+import kotlin.test.assertNotEquals
+import kotlin.test.assertTrue
 import org.junit.Before
+import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.Mockito.mock
 import org.mockito.Mockito.`when`
 import org.mockito.MockitoAnnotations
-import kotlin.test.assertEquals
-import kotlin.test.assertFalse
-import kotlin.test.assertNotEquals
-import kotlin.test.assertTrue
 
 private const val TEST_IMSI1 = "imsi1"
 private const val TEST_IMSI2 = "imsi2"
@@ -70,6 +71,8 @@
 @RunWith(DevSdkIgnoreRunner::class)
 @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2)
 class NetworkTemplateTest {
+    @get:Rule
+    val ignoreRule = DevSdkIgnoreRule()
     private val mockContext = mock(Context::class.java)
     private val mockWifiInfo = mock(WifiInfo::class.java)
 
@@ -215,6 +218,18 @@
         templateNullWifiKey.assertDoesNotMatch(identWifiNullKey)
     }
 
+    @DevSdkIgnoreRule.IgnoreAfter(Build.VERSION_CODES.TIRAMISU)
+    @Test
+    fun testBuildTemplateMobileAll_nullSubscriberId() {
+        val templateMobileAllWithNullImsi = buildTemplateMobileAll(null)
+        val setWithNull = HashSet<String?>().apply {
+            add(null)
+        }
+        val templateFromBuilder = NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES)
+            .setSubscriberIds(setWithNull).build()
+        assertEquals(templateFromBuilder, templateMobileAllWithNullImsi)
+    }
+
     @Test
     fun testMobileMatches() {
         val templateMobileImsi1 = buildTemplateMobileAll(TEST_IMSI1)
diff --git a/tests/unit/java/android/net/nsd/NsdManagerTest.java b/tests/unit/java/android/net/nsd/NsdManagerTest.java
index da65b62..0965193 100644
--- a/tests/unit/java/android/net/nsd/NsdManagerTest.java
+++ b/tests/unit/java/android/net/nsd/NsdManagerTest.java
@@ -21,6 +21,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -73,11 +74,11 @@
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        doReturn(mServiceConn).when(mService).connect(any());
+        doReturn(mServiceConn).when(mService).connect(any(), anyBoolean());
         mManager = new NsdManager(mContext, mService);
         final ArgumentCaptor<INsdManagerCallback> cbCaptor = ArgumentCaptor.forClass(
                 INsdManagerCallback.class);
-        verify(mService).connect(cbCaptor.capture());
+        verify(mService).connect(cbCaptor.capture(), anyBoolean());
         mCallback = cbCaptor.getValue();
     }
 
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index c1c6a8a..1cc0c89 100755
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -2219,7 +2219,9 @@
         ConnectivityResources.setResourcesContextForTest(null);
 
         mCsHandlerThread.quitSafely();
+        mCsHandlerThread.join();
         mAlarmManagerThread.quitSafely();
+        mAlarmManagerThread.join();
     }
 
     private void mockDefaultPackages() throws Exception {
@@ -3815,13 +3817,13 @@
 
     @Test
     public void testExplicitlySelected() throws Exception {
-        NetworkRequest request = new NetworkRequest.Builder()
+        final NetworkRequest request = new NetworkRequest.Builder()
                 .clearCapabilities().addCapability(NET_CAPABILITY_INTERNET)
                 .build();
-        TestNetworkCallback callback = new TestNetworkCallback();
+        final TestNetworkCallback callback = new TestNetworkCallback();
         mCm.registerNetworkCallback(request, callback);
 
-        // Bring up validated cell.
+        // Bring up validated cell
         mCellAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
         mCellAgent.connect(true);
         callback.expectAvailableThenValidatedCallbacks(mCellAgent);
@@ -3879,6 +3881,12 @@
         assertEquals(mWiFiAgent.getNetwork(), mCm.getActiveNetwork());
         expectUnvalidationCheckWillNotNotify(mWiFiAgent);
 
+        // Now request cell so it doesn't disconnect during the test
+        final NetworkRequest cellRequest = new NetworkRequest.Builder()
+                .clearCapabilities().addTransportType(TRANSPORT_CELLULAR).build();
+        final TestNetworkCallback cellCallback = new TestNetworkCallback();
+        mCm.requestNetwork(cellRequest, cellCallback);
+
         mEthernetAgent = new TestNetworkAgentWrapper(TRANSPORT_ETHERNET);
         mEthernetAgent.connect(true);
         callback.expectAvailableCallbacksUnvalidated(mEthernetAgent);
@@ -3920,6 +3928,7 @@
 
         callback.expect(LOST, mWiFiAgent);
         callback.expect(LOST, mCellAgent);
+        mCm.unregisterNetworkCallback(cellCallback);
     }
 
     private void doTestFirstEvaluation(
@@ -10126,6 +10135,7 @@
         b2.expectBroadcast();
 
         VMSHandlerThread.quitSafely();
+        VMSHandlerThread.join();
     }
 
     @Test @IgnoreUpTo(Build.VERSION_CODES.S_V2)
@@ -16974,6 +16984,7 @@
         } finally {
             cellFactory.terminate();
             handlerThread.quitSafely();
+            handlerThread.join();
         }
     }
 
diff --git a/tests/unit/java/com/android/server/NsdServiceTest.java b/tests/unit/java/com/android/server/NsdServiceTest.java
index 0b48e08..2ed989e 100644
--- a/tests/unit/java/com/android/server/NsdServiceTest.java
+++ b/tests/unit/java/com/android/server/NsdServiceTest.java
@@ -17,6 +17,8 @@
 package com.android.server;
 
 import static android.net.InetAddresses.parseNumericAddress;
+import static android.net.connectivity.ConnectivityCompatChanges.ENABLE_PLATFORM_MDNS_BACKEND;
+import static android.net.connectivity.ConnectivityCompatChanges.RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER;
 import static android.net.nsd.NsdManager.FAILURE_BAD_PARAMETERS;
 import static android.net.nsd.NsdManager.FAILURE_INTERNAL_ERROR;
 import static android.net.nsd.NsdManager.FAILURE_OPERATION_NOT_RUNNING;
@@ -54,7 +56,6 @@
 import android.content.Context;
 import android.net.INetd;
 import android.net.Network;
-import android.net.connectivity.ConnectivityCompatChanges;
 import android.net.mdns.aidl.DiscoveryInfo;
 import android.net.mdns.aidl.GetAddressInfo;
 import android.net.mdns.aidl.IMDnsEventListener;
@@ -190,7 +191,9 @@
     }
 
     @Test
-    @DisableCompatChanges(ConnectivityCompatChanges.RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER)
+    @DisableCompatChanges({
+            RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER,
+            ENABLE_PLATFORM_MDNS_BACKEND})
     public void testPreSClients() throws Exception {
         // Pre S client connected, the daemon should be started.
         connectClient(mService);
@@ -217,7 +220,8 @@
     }
 
     @Test
-    @EnableCompatChanges(ConnectivityCompatChanges.RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER)
+    @EnableCompatChanges(RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER)
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testNoDaemonStartedWhenClientsConnect() throws Exception {
         // Creating an NsdManager will not cause daemon startup.
         connectClient(mService);
@@ -251,7 +255,8 @@
     }
 
     @Test
-    @EnableCompatChanges(ConnectivityCompatChanges.RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER)
+    @EnableCompatChanges(RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER)
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testClientRequestsAreGCedAtDisconnection() throws Exception {
         final NsdManager client = connectClient(mService);
         final INsdManagerCallback cb1 = getCallback();
@@ -294,7 +299,8 @@
     }
 
     @Test
-    @EnableCompatChanges(ConnectivityCompatChanges.RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER)
+    @EnableCompatChanges(RUN_NATIVE_NSD_ONLY_IF_LEGACY_APPS_T_AND_LATER)
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testCleanupDelayNoRequestActive() throws Exception {
         final NsdManager client = connectClient(mService);
 
@@ -330,6 +336,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testDiscoverOnTetheringDownstream() throws Exception {
         final NsdManager client = connectClient(mService);
         final int interfaceIdx = 123;
@@ -420,6 +427,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testDiscoverOnBlackholeNetwork() throws Exception {
         final NsdManager client = connectClient(mService);
         final DiscoveryListener discListener = mock(DiscoveryListener.class);
@@ -449,6 +457,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testServiceRegistrationSuccessfulAndFailed() throws Exception {
         final NsdManager client = connectClient(mService);
         final NsdServiceInfo request = new NsdServiceInfo(SERVICE_NAME, SERVICE_TYPE);
@@ -495,6 +504,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testServiceDiscoveryFailed() throws Exception {
         final NsdManager client = connectClient(mService);
         final DiscoveryListener discListener = mock(DiscoveryListener.class);
@@ -521,6 +531,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testServiceResolutionFailed() throws Exception {
         final NsdManager client = connectClient(mService);
         final NsdServiceInfo request = new NsdServiceInfo(SERVICE_NAME, SERVICE_TYPE);
@@ -551,6 +562,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testGettingAddressFailed() throws Exception {
         final NsdManager client = connectClient(mService);
         final NsdServiceInfo request = new NsdServiceInfo(SERVICE_NAME, SERVICE_TYPE);
@@ -597,6 +609,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testNoCrashWhenProcessResolutionAfterBinderDied() throws Exception {
         final NsdManager client = connectClient(mService);
         final INsdManagerCallback cb = getCallback();
@@ -616,6 +629,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testStopServiceResolution() {
         final NsdManager client = connectClient(mService);
         final NsdServiceInfo request = new NsdServiceInfo(SERVICE_NAME, SERVICE_TYPE);
@@ -638,6 +652,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testStopResolutionFailed() {
         final NsdManager client = connectClient(mService);
         final NsdServiceInfo request = new NsdServiceInfo(SERVICE_NAME, SERVICE_TYPE);
@@ -662,6 +677,7 @@
     }
 
     @Test @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.TIRAMISU)
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testStopResolutionDuringGettingAddress() throws RemoteException {
         final NsdManager client = connectClient(mService);
         final NsdServiceInfo request = new NsdServiceInfo(SERVICE_NAME, SERVICE_TYPE);
@@ -823,6 +839,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testMdnsDiscoveryManagerFeature() {
         // Create NsdService w/o feature enabled.
         final NsdManager client = connectClient(mService);
@@ -1012,6 +1029,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testMdnsAdvertiserFeatureFlagging() {
         // Create NsdService w/o feature enabled.
         final NsdManager client = connectClient(mService);
@@ -1047,6 +1065,7 @@
     }
 
     @Test
+    @DisableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
     public void testTypeSpecificFeatureFlagging() {
         doReturn("_type1._tcp:flag1,_type2._tcp:flag2").when(mDeps).getTypeAllowlistFlags();
         doReturn(true).when(mDeps).isFeatureEnabled(any(),
@@ -1234,6 +1253,37 @@
         assertEquals("_TEST._sub._999._tcp", constructServiceType(serviceType4));
     }
 
+    @Test
+    @EnableCompatChanges(ENABLE_PLATFORM_MDNS_BACKEND)
+    public void testEnablePlatformMdnsBackend() {
+        final NsdManager client = connectClient(mService);
+        final NsdServiceInfo regInfo = new NsdServiceInfo("a".repeat(70), SERVICE_TYPE);
+        final Network network = new Network(999);
+        regInfo.setHostAddresses(List.of(parseNumericAddress("192.0.2.123")));
+        regInfo.setPort(12345);
+        regInfo.setAttribute("testattr", "testvalue");
+        regInfo.setNetwork(network);
+
+        // Verify the registration uses MdnsAdvertiser
+        final RegistrationListener regListener = mock(RegistrationListener.class);
+        client.registerService(regInfo, NsdManager.PROTOCOL_DNS_SD, Runnable::run, regListener);
+        waitForIdle();
+        verify(mSocketProvider).startMonitoringSockets();
+        verify(mAdvertiser).addService(anyInt(), any());
+
+        // Verify the discovery uses MdnsDiscoveryManager
+        final DiscoveryListener discListener = mock(DiscoveryListener.class);
+        client.discoverServices(SERVICE_TYPE, PROTOCOL, network, r -> r.run(), discListener);
+        waitForIdle();
+        verify(mDiscoveryManager).registerListener(anyString(), any(), any());
+
+        // Verify the discovery uses MdnsDiscoveryManager
+        final ResolveListener resolveListener = mock(ResolveListener.class);
+        client.resolveService(regInfo, r -> r.run(), resolveListener);
+        waitForIdle();
+        verify(mDiscoveryManager, times(2)).registerListener(anyString(), any(), any());
+    }
+
     private void waitForIdle() {
         HandlerUtils.waitForIdle(mHandler, TIMEOUT_MS);
     }
@@ -1241,7 +1291,8 @@
     NsdService makeService() {
         final NsdService service = new NsdService(mContext, mHandler, CLEANUP_DELAY_MS, mDeps) {
             @Override
-            public INsdServiceConnector connect(INsdManagerCallback baseCb) {
+            public INsdServiceConnector connect(INsdManagerCallback baseCb,
+                    boolean runNewMdnsBackend) {
                 // Wrap the callback in a transparent mock, to mock asBinder returning a
                 // LinkToDeathRecorder. This will allow recording the binder death recipient
                 // registered on the callback. Use a transparent mock and not a spy as the actual
@@ -1250,7 +1301,7 @@
                         AdditionalAnswers.delegatesTo(baseCb));
                 doReturn(new LinkToDeathRecorder()).when(cb).asBinder();
                 mCreatedCallbacks.add(cb);
-                return super.connect(cb);
+                return super.connect(cb, runNewMdnsBackend);
             }
         };
         return service;
diff --git a/tests/unit/java/com/android/server/connectivity/AutomaticOnOffKeepaliveTrackerTest.java b/tests/unit/java/com/android/server/connectivity/AutomaticOnOffKeepaliveTrackerTest.java
index 4f0b9c4..696eff4 100644
--- a/tests/unit/java/com/android/server/connectivity/AutomaticOnOffKeepaliveTrackerTest.java
+++ b/tests/unit/java/com/android/server/connectivity/AutomaticOnOffKeepaliveTrackerTest.java
@@ -28,8 +28,8 @@
 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.eq;
+import static org.mockito.ArgumentMatchers.longThat;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -57,6 +57,7 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
+import android.os.SystemClock;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
 
@@ -94,6 +95,7 @@
     private static final int NETID_MASK = 0xffff;
     private static final int TIMEOUT_MS = 30_000;
     private static final int MOCK_RESOURCE_ID = 5;
+    private static final int TEST_KEEPALIVE_INTERVAL_SEC = 10;
     private AutomaticOnOffKeepaliveTracker mAOOKeepaliveTracker;
     private HandlerThread mHandlerThread;
 
@@ -334,9 +336,13 @@
         final KeepalivePacketData kpd = new NattKeepalivePacketData(srcAddress, srcPort,
                 dstAddress, dstPort, new byte[] {1});
         final KeepaliveInfo ki = mKeepaliveTracker.new KeepaliveInfo(cb, nai, kpd,
-                10 /* interval */, KeepaliveInfo.TYPE_NATT, fd);
+                TEST_KEEPALIVE_INTERVAL_SEC, KeepaliveInfo.TYPE_NATT, fd);
         mKeepaliveTracker.setReturnedKeepaliveInfo(ki);
 
+        // Mock elapsed real time to verify the alarm timer.
+        final long time = SystemClock.elapsedRealtime();
+        doReturn(time).when(mDependencies).getElapsedRealtime();
+
         mAOOKeepaliveTracker.startNattKeepalive(nai, fd, 10 /* intervalSeconds */, cb,
                 srcAddress.toString(), srcPort, dstAddress.toString(), dstPort,
                 true /* automaticOnOffKeepalives */, underpinnedNetwork);
@@ -344,8 +350,11 @@
 
         final ArgumentCaptor<AlarmManager.OnAlarmListener> listenerCaptor =
                 ArgumentCaptor.forClass(AlarmManager.OnAlarmListener.class);
-        verify(mAlarmManager).setExact(eq(AlarmManager.ELAPSED_REALTIME), anyLong(),
-                any(), listenerCaptor.capture(), eq(mTestHandler));
+        // The alarm timer should be smaller than the keepalive delay. Verify the alarm trigger time
+        // is higher than base time but smaller than the keepalive delay.
+        verify(mAlarmManager).setExact(eq(AlarmManager.ELAPSED_REALTIME),
+                longThat(t -> t > time + 1000L && t < time + TEST_KEEPALIVE_INTERVAL_SEC * 1000L),
+                any() /* tag */, listenerCaptor.capture(), eq(mTestHandler));
         final AlarmManager.OnAlarmListener listener = listenerCaptor.getValue();
 
         // For realism, the listener should be posted on the handler
diff --git a/tests/unit/java/com/android/server/connectivity/VpnTest.java b/tests/unit/java/com/android/server/connectivity/VpnTest.java
index 1f965d9..dd9177ee 100644
--- a/tests/unit/java/com/android/server/connectivity/VpnTest.java
+++ b/tests/unit/java/com/android/server/connectivity/VpnTest.java
@@ -35,15 +35,25 @@
 import static android.net.cts.util.IkeSessionTestUtils.getTestIkeSessionParams;
 import static android.net.ipsec.ike.IkeSessionConfiguration.EXTENSION_TYPE_MOBIKE;
 import static android.net.ipsec.ike.IkeSessionParams.ESP_ENCAP_TYPE_AUTO;
+import static android.net.ipsec.ike.IkeSessionParams.ESP_ENCAP_TYPE_NONE;
+import static android.net.ipsec.ike.IkeSessionParams.ESP_ENCAP_TYPE_UDP;
 import static android.net.ipsec.ike.IkeSessionParams.ESP_IP_VERSION_AUTO;
+import static android.net.ipsec.ike.IkeSessionParams.ESP_IP_VERSION_IPV4;
+import static android.net.ipsec.ike.IkeSessionParams.ESP_IP_VERSION_IPV6;
 import static android.os.Build.VERSION_CODES.S_V2;
 import static android.os.UserHandle.PER_USER_RANGE;
 import static android.telephony.CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL;
 import static android.telephony.CarrierConfigManager.KEY_MIN_UDP_PORT_4500_NAT_TIMEOUT_SEC_INT;
+import static android.telephony.CarrierConfigManager.KEY_PREFERRED_IKE_PROTOCOL_INT;
 
 import static com.android.net.module.util.NetworkStackConstants.IPV6_MIN_MTU;
 import static com.android.server.connectivity.Vpn.AUTOMATIC_KEEPALIVE_DELAY_SECONDS;
+import static com.android.server.connectivity.Vpn.DEFAULT_LONG_LIVED_TCP_CONNS_EXPENSIVE_TIMEOUT_SEC;
 import static com.android.server.connectivity.Vpn.DEFAULT_UDP_PORT_4500_NAT_TIMEOUT_SEC_INT;
+import static com.android.server.connectivity.Vpn.PREFERRED_IKE_PROTOCOL_AUTO;
+import static com.android.server.connectivity.Vpn.PREFERRED_IKE_PROTOCOL_IPV4_UDP;
+import static com.android.server.connectivity.Vpn.PREFERRED_IKE_PROTOCOL_IPV6_ESP;
+import static com.android.server.connectivity.Vpn.PREFERRED_IKE_PROTOCOL_IPV6_UDP;
 import static com.android.testutils.Cleanup.testAndCleanup;
 import static com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
 import static com.android.testutils.MiscAsserts.assertThrows;
@@ -277,6 +287,7 @@
     private static final int IKE_NATT_KEEPALIVE_DELAY_SEC_DEFAULT = 10;
     private static final int TEST_KEEPALIVE_TIMER = 800;
     private static final int TEST_SUB_ID = 1234;
+    private static final String TEST_MCCMNC = "12345";
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Context mContext;
     @Mock private UserManager mUserManager;
@@ -1850,6 +1861,13 @@
 
     private PlatformVpnSnapshot verifySetupPlatformVpn(VpnProfile vpnProfile,
             IkeSessionConfiguration ikeConfig, boolean mtuSupportsIpv6) throws Exception {
+        return verifySetupPlatformVpn(vpnProfile, ikeConfig, mtuSupportsIpv6,
+                false /* areLongLivedTcpConnectionsExpensive */);
+    }
+
+    private PlatformVpnSnapshot verifySetupPlatformVpn(VpnProfile vpnProfile,
+            IkeSessionConfiguration ikeConfig, boolean mtuSupportsIpv6,
+            boolean areLongLivedTcpConnectionsExpensive) throws Exception {
         if (!mtuSupportsIpv6) {
             doReturn(IPV6_MIN_MTU - 1).when(mTestDeps).calculateVpnMtu(any(), anyInt(), anyInt(),
                     anyBoolean());
@@ -1932,8 +1950,10 @@
 
         // Check if allowBypass is set or not.
         assertTrue(nacCaptor.getValue().isBypassableVpn());
-        assertTrue(((VpnTransportInfo) ncCaptor.getValue().getTransportInfo()).isBypassable());
-
+        final VpnTransportInfo info = (VpnTransportInfo) ncCaptor.getValue().getTransportInfo();
+        assertTrue(info.isBypassable());
+        assertEquals(areLongLivedTcpConnectionsExpensive,
+                info.areLongLivedTcpConnectionsExpensive());
         return new PlatformVpnSnapshot(vpn, nwCb, ikeCb, childCb);
     }
 
@@ -1945,43 +1965,54 @@
     }
 
     @Test
-    public void testMigrateIkeSession_FromIkeTunnConnParams_AutoTimerNoTimer()
-            throws Exception {
+    public void testMigrateIkeSession_FromIkeTunnConnParams_AutoTimerNoTimer() throws Exception {
         doTestMigrateIkeSession_FromIkeTunnConnParams(
                 false /* isAutomaticIpVersionSelectionEnabled */,
                 true /* isAutomaticNattKeepaliveTimerEnabled */,
-                TEST_KEEPALIVE_TIMEOUT_UNSET);
+                TEST_KEEPALIVE_TIMEOUT_UNSET /* keepaliveInProfile */,
+                ESP_IP_VERSION_AUTO /* ipVersionInProfile */,
+                ESP_ENCAP_TYPE_AUTO /* encapTypeInProfile */);
     }
 
     @Test
-    public void testMigrateIkeSession_FromIkeTunnConnParams_AutoTimerTimerSet()
-            throws Exception {
+    public void testMigrateIkeSession_FromIkeTunnConnParams_AutoTimerTimerSet() throws Exception {
         doTestMigrateIkeSession_FromIkeTunnConnParams(
                 false /* isAutomaticIpVersionSelectionEnabled */,
                 true /* isAutomaticNattKeepaliveTimerEnabled */,
-                TEST_KEEPALIVE_TIMER);
+                TEST_KEEPALIVE_TIMER /* keepaliveInProfile */,
+                ESP_IP_VERSION_AUTO /* ipVersionInProfile */,
+                ESP_ENCAP_TYPE_AUTO /* encapTypeInProfile */);
     }
 
     @Test
-    public void testMigrateIkeSession_FromIkeTunnConnParams_AutoIp()
-            throws Exception {
+    public void testMigrateIkeSession_FromIkeTunnConnParams_AutoIp() throws Exception {
         doTestMigrateIkeSession_FromIkeTunnConnParams(
                 true /* isAutomaticIpVersionSelectionEnabled */,
                 false /* isAutomaticNattKeepaliveTimerEnabled */,
-                TEST_KEEPALIVE_TIMEOUT_UNSET);
+                TEST_KEEPALIVE_TIMEOUT_UNSET /* keepaliveInProfile */,
+                ESP_IP_VERSION_AUTO /* ipVersionInProfile */,
+                ESP_ENCAP_TYPE_AUTO /* encapTypeInProfile */);
     }
 
     @Test
-    public void testMigrateIkeSession_FromNotIkeTunnConnParams_AutoTimer()
-            throws Exception {
+    public void testMigrateIkeSession_FromIkeTunnConnParams_AssignedIpProtocol() throws Exception {
+        doTestMigrateIkeSession_FromIkeTunnConnParams(
+                false /* isAutomaticIpVersionSelectionEnabled */,
+                false /* isAutomaticNattKeepaliveTimerEnabled */,
+                TEST_KEEPALIVE_TIMEOUT_UNSET /* keepaliveInProfile */,
+                ESP_IP_VERSION_IPV4 /* ipVersionInProfile */,
+                ESP_ENCAP_TYPE_UDP /* encapTypeInProfile */);
+    }
+
+    @Test
+    public void testMigrateIkeSession_FromNotIkeTunnConnParams_AutoTimer() throws Exception {
         doTestMigrateIkeSession_FromNotIkeTunnConnParams(
                 false /* isAutomaticIpVersionSelectionEnabled */,
                 true /* isAutomaticNattKeepaliveTimerEnabled */);
     }
 
     @Test
-    public void testMigrateIkeSession_FromNotIkeTunnConnParams_AutoIp()
-            throws Exception {
+    public void testMigrateIkeSession_FromNotIkeTunnConnParams_AutoIp() throws Exception {
         doTestMigrateIkeSession_FromNotIkeTunnConnParams(
                 true /* isAutomaticIpVersionSelectionEnabled */,
                 false /* isAutomaticNattKeepaliveTimerEnabled */);
@@ -2001,16 +2032,27 @@
         final int expectedKeepalive = isAutomaticNattKeepaliveTimerEnabled
                 ? AUTOMATIC_KEEPALIVE_DELAY_SECONDS
                 : DEFAULT_UDP_PORT_4500_NAT_TIMEOUT_SEC_INT;
-        doTestMigrateIkeSession(ikeProfile.toVpnProfile(), expectedKeepalive,
-                isAutomaticIpVersionSelectionEnabled);
+        doTestMigrateIkeSession(ikeProfile.toVpnProfile(),
+                expectedKeepalive,
+                ESP_IP_VERSION_AUTO /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_AUTO /* expectedEncapType */);
     }
 
     private void doTestMigrateIkeSession_FromIkeTunnConnParams(
             boolean isAutomaticIpVersionSelectionEnabled,
             boolean isAutomaticNattKeepaliveTimerEnabled,
-            int keepaliveInProfile) throws Exception {
-        final IkeSessionParams ikeSessionParams = getTestIkeSessionParams(true /* testIpv6 */,
+            int keepaliveInProfile,
+            int ipVersionInProfile,
+            int encapTypeInProfile) throws Exception {
+        // TODO: Update helper function in IkeSessionTestUtils to support building IkeSessionParams
+        // with IP version and encap type when mainline-prod branch support these two APIs.
+        final IkeSessionParams params = getTestIkeSessionParams(true /* testIpv6 */,
                 new IkeFqdnIdentification(TEST_IDENTITY), keepaliveInProfile);
+        final IkeSessionParams ikeSessionParams = new IkeSessionParams.Builder(params)
+                .setIpVersion(ipVersionInProfile)
+                .setEncapType(encapTypeInProfile)
+                .build();
+
         final IkeTunnelConnectionParams tunnelParams =
                 new IkeTunnelConnectionParams(ikeSessionParams, CHILD_PARAMS);
         final Ikev2VpnProfile ikeProfile = new Ikev2VpnProfile.Builder(tunnelParams)
@@ -2022,21 +2064,23 @@
         final int expectedKeepalive = isAutomaticNattKeepaliveTimerEnabled
                 ? AUTOMATIC_KEEPALIVE_DELAY_SECONDS
                 : ikeSessionParams.getNattKeepAliveDelaySeconds();
+        final int expectedIpVersion = isAutomaticIpVersionSelectionEnabled
+                ? ESP_IP_VERSION_AUTO
+                : ikeSessionParams.getIpVersion();
+        final int expectedEncapType = isAutomaticIpVersionSelectionEnabled
+                ? ESP_ENCAP_TYPE_AUTO
+                : ikeSessionParams.getEncapType();
         doTestMigrateIkeSession(ikeProfile.toVpnProfile(), expectedKeepalive,
-                isAutomaticIpVersionSelectionEnabled);
+                expectedIpVersion, expectedEncapType);
     }
 
-    private void doTestMigrateIkeSession(VpnProfile profile, int expectedKeepalive,
-            boolean isAutomaticIpVersionSelectionEnabled) throws Exception {
-        final int expectedIpVersion = isAutomaticIpVersionSelectionEnabled
-                ? ESP_IP_VERSION_AUTO : ESP_IP_VERSION_AUTO;
-        final int expectedEncapType = isAutomaticIpVersionSelectionEnabled
-                ? ESP_ENCAP_TYPE_AUTO : ESP_IP_VERSION_AUTO;
-
+    private void doTestMigrateIkeSession(VpnProfile profile,
+            int expectedKeepalive, int expectedIpVersion, int expectedEncapType) throws Exception {
         final PlatformVpnSnapshot vpnSnapShot =
                 verifySetupPlatformVpn(profile,
                         createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */),
-                        false /* mtuSupportsIpv6 */);
+                        false /* mtuSupportsIpv6 */,
+                        expectedKeepalive < DEFAULT_LONG_LIVED_TCP_CONNS_EXPENSIVE_TIMEOUT_SEC);
         // Simulate a new network coming up
         vpnSnapShot.nwCb.onAvailable(TEST_NETWORK_2);
         verify(mIkeSessionWrapper, never()).setNetwork(any(), anyInt(), anyInt(), anyInt());
@@ -2050,16 +2094,18 @@
         vpnSnapShot.vpn.mVpnRunner.exitVpnRunner();
     }
 
-    private void mockCarrierConfig(int subId, int keepaliveTimer, int simStatus) {
+    private void mockCarrierConfig(int subId, int simStatus, int keepaliveTimer, int ikeProtocol) {
         final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class);
         doReturn(subId).when(subscriptionInfo).getSubscriptionId();
         doReturn(List.of(subscriptionInfo)).when(mSubscriptionManager)
                 .getActiveSubscriptionInfoList();
 
         doReturn(simStatus).when(mTmPerSub).getSimApplicationState();
+        doReturn(TEST_MCCMNC).when(mTmPerSub).getSimOperator(subId);
 
         final PersistableBundle persistableBundle = new PersistableBundle();
         persistableBundle.putInt(KEY_MIN_UDP_PORT_4500_NAT_TIMEOUT_SEC_INT, keepaliveTimer);
+        persistableBundle.putInt(KEY_PREFERRED_IKE_PROTOCOL_INT, ikeProtocol);
         // For CarrierConfigManager.isConfigForIdentifiedCarrier check
         persistableBundle.putBoolean(KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
         doReturn(persistableBundle).when(mConfigManager).getConfigForSubId(subId);
@@ -2076,26 +2122,38 @@
 
     @Test
     public void testNattKeepaliveTimerFromCarrierConfig_noSubId() throws Exception {
-        doTestNattKeepaliveTimerFromCarrierConfig(new NetworkCapabilities(),
-                TelephonyManager.SIM_STATE_LOADED, AUTOMATIC_KEEPALIVE_DELAY_SECONDS);
+        doTestReadCarrierConfig(new NetworkCapabilities(),
+                TelephonyManager.SIM_STATE_LOADED,
+                PREFERRED_IKE_PROTOCOL_IPV4_UDP,
+                AUTOMATIC_KEEPALIVE_DELAY_SECONDS /* expectedKeepaliveTimer */,
+                ESP_IP_VERSION_AUTO /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
+                false /* expectedReadFromCarrierConfig*/,
+                true /* areLongLivedTcpConnectionsExpensive */);
     }
 
     @Test
     public void testNattKeepaliveTimerFromCarrierConfig_simAbsent() throws Exception {
-        doTestNattKeepaliveTimerFromCarrierConfig(new NetworkCapabilities.Builder().build(),
-                TelephonyManager.SIM_STATE_ABSENT, AUTOMATIC_KEEPALIVE_DELAY_SECONDS);
+        doTestReadCarrierConfig(new NetworkCapabilities.Builder().build(),
+                TelephonyManager.SIM_STATE_ABSENT,
+                PREFERRED_IKE_PROTOCOL_IPV4_UDP,
+                AUTOMATIC_KEEPALIVE_DELAY_SECONDS /* expectedKeepaliveTimer */,
+                ESP_IP_VERSION_AUTO /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
+                false /* expectedReadFromCarrierConfig*/,
+                true /* areLongLivedTcpConnectionsExpensive */);
     }
 
     @Test
     public void testNattKeepaliveTimerFromCarrierConfig() throws Exception {
-        final NetworkCapabilities nc = new NetworkCapabilities.Builder()
-                .addTransportType(TRANSPORT_CELLULAR)
-                .setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
-                        .setSubscriptionId(TEST_SUB_ID)
-                        .build())
-                .build();
-        doTestNattKeepaliveTimerFromCarrierConfig(nc,
-                TelephonyManager.SIM_STATE_LOADED, TEST_KEEPALIVE_TIMER);
+        doTestReadCarrierConfig(createTestCellNc(),
+                TelephonyManager.SIM_STATE_LOADED,
+                PREFERRED_IKE_PROTOCOL_AUTO,
+                TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
+                ESP_IP_VERSION_AUTO /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
+                true /* expectedReadFromCarrierConfig*/,
+                false /* areLongLivedTcpConnectionsExpensive */);
     }
 
     @Test
@@ -2104,23 +2162,79 @@
                 .addTransportType(TRANSPORT_WIFI)
                 .setTransportInfo(new WifiInfo.Builder().build())
                 .build();
-        doTestNattKeepaliveTimerFromCarrierConfig(nc,
-                TelephonyManager.SIM_STATE_LOADED, AUTOMATIC_KEEPALIVE_DELAY_SECONDS);
+        doTestReadCarrierConfig(nc,
+                TelephonyManager.SIM_STATE_LOADED,
+                PREFERRED_IKE_PROTOCOL_IPV4_UDP,
+                AUTOMATIC_KEEPALIVE_DELAY_SECONDS /* expectedKeepaliveTimer */,
+                ESP_IP_VERSION_AUTO /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_AUTO /* expectedEncapType */,
+                false /* expectedReadFromCarrierConfig*/,
+                true /* areLongLivedTcpConnectionsExpensive */);
     }
 
-    private void doTestNattKeepaliveTimerFromCarrierConfig(NetworkCapabilities nc, int simState,
-            int expectedKeepaliveTimer) throws Exception {
+    @Test
+    public void testPreferredIpProtocolFromCarrierConfig_v4UDP() throws Exception {
+        doTestReadCarrierConfig(createTestCellNc(),
+                TelephonyManager.SIM_STATE_LOADED,
+                PREFERRED_IKE_PROTOCOL_IPV4_UDP,
+                TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
+                ESP_IP_VERSION_IPV4 /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_UDP /* expectedEncapType */,
+                true /* expectedReadFromCarrierConfig*/,
+                false /* areLongLivedTcpConnectionsExpensive */);
+    }
+
+    @Test
+    public void testPreferredIpProtocolFromCarrierConfig_v6ESP() throws Exception {
+        doTestReadCarrierConfig(createTestCellNc(),
+                TelephonyManager.SIM_STATE_LOADED,
+                PREFERRED_IKE_PROTOCOL_IPV6_ESP,
+                TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
+                ESP_IP_VERSION_IPV6 /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_NONE /* expectedEncapType */,
+                true /* expectedReadFromCarrierConfig*/,
+                false /* areLongLivedTcpConnectionsExpensive */);
+    }
+
+    @Test
+    public void testPreferredIpProtocolFromCarrierConfig_v6UDP() throws Exception {
+        doTestReadCarrierConfig(createTestCellNc(),
+                TelephonyManager.SIM_STATE_LOADED,
+                PREFERRED_IKE_PROTOCOL_IPV6_UDP,
+                TEST_KEEPALIVE_TIMER /* expectedKeepaliveTimer */,
+                ESP_IP_VERSION_IPV6 /* expectedIpVersion */,
+                ESP_ENCAP_TYPE_UDP /* expectedEncapType */,
+                true /* expectedReadFromCarrierConfig*/,
+                false /* areLongLivedTcpConnectionsExpensive */);
+    }
+
+    private NetworkCapabilities createTestCellNc() {
+        return new NetworkCapabilities.Builder()
+                .addTransportType(TRANSPORT_CELLULAR)
+                .setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
+                        .setSubscriptionId(TEST_SUB_ID)
+                        .build())
+                .build();
+    }
+
+    private void doTestReadCarrierConfig(NetworkCapabilities nc, int simState, int preferredIpProto,
+            int expectedKeepaliveTimer, int expectedIpVersion, int expectedEncapType,
+            boolean expectedReadFromCarrierConfig,
+            boolean areLongLivedTcpConnectionsExpensive)
+            throws Exception {
         final Ikev2VpnProfile ikeProfile =
                 new Ikev2VpnProfile.Builder(TEST_VPN_SERVER, TEST_VPN_IDENTITY)
                         .setAuthPsk(TEST_VPN_PSK)
                         .setBypassable(true /* isBypassable */)
                         .setAutomaticNattKeepaliveTimerEnabled(true)
+                        .setAutomaticIpVersionSelectionEnabled(true)
                         .build();
 
         final PlatformVpnSnapshot vpnSnapShot =
                 verifySetupPlatformVpn(ikeProfile.toVpnProfile(),
                         createIkeConfig(createIkeConnectInfo(), true /* isMobikeEnabled */),
-                        false /* mtuSupportsIpv6 */);
+                        false /* mtuSupportsIpv6 */,
+                        true /* areLongLivedTcpConnectionsExpensive */);
 
         final CarrierConfigManager.CarrierConfigChangeListener listener =
                 getCarrierConfigListener();
@@ -2131,19 +2245,35 @@
         verify(mIkeSessionWrapper, never()).setNetwork(any(), anyInt(), anyInt(), anyInt());
 
         reset(mIkeSessionWrapper);
-        mockCarrierConfig(TEST_SUB_ID, TEST_KEEPALIVE_TIMER, simState);
+        mockCarrierConfig(TEST_SUB_ID, simState, TEST_KEEPALIVE_TIMER, preferredIpProto);
         vpnSnapShot.nwCb.onCapabilitiesChanged(TEST_NETWORK_2, nc);
         verify(mIkeSessionWrapper).setNetwork(TEST_NETWORK_2,
-                ESP_IP_VERSION_AUTO, ESP_ENCAP_TYPE_AUTO, expectedKeepaliveTimer);
+                expectedIpVersion, expectedEncapType, expectedKeepaliveTimer);
+        if (expectedReadFromCarrierConfig) {
+            final ArgumentCaptor<NetworkCapabilities> ncCaptor =
+                    ArgumentCaptor.forClass(NetworkCapabilities.class);
+            verify(mMockNetworkAgent).doSendNetworkCapabilities(ncCaptor.capture());
+
+            final VpnTransportInfo info =
+                    (VpnTransportInfo) ncCaptor.getValue().getTransportInfo();
+            assertEquals(areLongLivedTcpConnectionsExpensive,
+                    info.areLongLivedTcpConnectionsExpensive());
+        } else {
+            verify(mMockNetworkAgent, never()).doSendNetworkCapabilities(any());
+        }
 
         reset(mExecutor);
         reset(mIkeSessionWrapper);
+        reset(mMockNetworkAgent);
 
         // Trigger carrier config change
         listener.onCarrierConfigChanged(1 /* logicalSlotIndex */, TEST_SUB_ID,
                 -1 /* carrierId */, -1 /* specificCarrierId */);
         verify(mIkeSessionWrapper).setNetwork(TEST_NETWORK_2,
-                ESP_IP_VERSION_AUTO, ESP_ENCAP_TYPE_AUTO, expectedKeepaliveTimer);
+                expectedIpVersion, expectedEncapType, expectedKeepaliveTimer);
+        // Expect no NetworkCapabilities change.
+        // Call to doSendNetworkCapabilities() will not be triggered.
+        verify(mMockNetworkAgent, never()).doSendNetworkCapabilities(any());
     }
 
     @Test
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsAdvertiserTest.kt b/tests/unit/java/com/android/server/connectivity/mdns/MdnsAdvertiserTest.kt
index 375c150..a917361 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsAdvertiserTest.kt
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsAdvertiserTest.kt
@@ -97,6 +97,7 @@
     @After
     fun tearDown() {
         thread.quitSafely()
+        thread.join()
     }
 
     @Test
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsAnnouncerTest.kt b/tests/unit/java/com/android/server/connectivity/mdns/MdnsAnnouncerTest.kt
index 6c3f729..7c6cb3e 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsAnnouncerTest.kt
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsAnnouncerTest.kt
@@ -63,6 +63,7 @@
     @After
     fun tearDown() {
         thread.quitSafely()
+        thread.join()
     }
 
     private class TestAnnouncementInfo(
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsInterfaceAdvertiserTest.kt b/tests/unit/java/com/android/server/connectivity/mdns/MdnsInterfaceAdvertiserTest.kt
index 2d8d8f3..0ca0835 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsInterfaceAdvertiserTest.kt
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsInterfaceAdvertiserTest.kt
@@ -136,6 +136,7 @@
     @After
     fun tearDown() {
         thread.quitSafely()
+        thread.join()
     }
 
     @Test
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsProberTest.kt b/tests/unit/java/com/android/server/connectivity/mdns/MdnsProberTest.kt
index a2dbbc6..2b5423b 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsProberTest.kt
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsProberTest.kt
@@ -68,6 +68,7 @@
     @After
     fun tearDown() {
         thread.quitSafely()
+        thread.join()
     }
 
     private class TestProbeInfo(probeRecords: List<MdnsRecord>, private val delayMs: Long = 1L) :
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsRecordRepositoryTest.kt b/tests/unit/java/com/android/server/connectivity/mdns/MdnsRecordRepositoryTest.kt
index 5665091..44e0d08 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsRecordRepositoryTest.kt
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsRecordRepositoryTest.kt
@@ -79,6 +79,7 @@
     @After
     fun tearDown() {
         thread.quitSafely()
+        thread.join()
     }
 
     @Test
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java
index a80c078..b0a1f18 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java
@@ -156,16 +156,20 @@
             + "010001000000780004C0A8018A0000000000000000000000000000"
             + "000000");
 
-    // MDNS record for name "testhost1" with an IPv4 address of 10.1.2.3
+    // MDNS record for name "testhost1" with an IPv4 address of 10.1.2.3. Also set cache flush bit
+    // for the records changed.
     private static final byte[] DATAIN_IPV4_1 = HexDump.hexStringToByteArray(
             "0974657374686f73743100000180010000007800040a010203");
-    // MDNS record for name "testhost1" with an IPv4 address of 10.1.2.4
+    // MDNS record for name "testhost1" with an IPv4 address of 10.1.2.4. Also set cache flush bit
+    // for the records changed.
     private static final byte[] DATAIN_IPV4_2 = HexDump.hexStringToByteArray(
             "0974657374686f73743100000180010000007800040a010204");
-    // MDNS record w/name "testhost1" & IPv6 address of aabb:ccdd:1122:3344:a0b0:c0d0:1020:3040
+    // MDNS record w/name "testhost1" & IPv6 address of aabb:ccdd:1122:3344:a0b0:c0d0:1020:3040.
+    // Also set cache flush bit for the records changed.
     private static final byte[] DATAIN_IPV6_1 = HexDump.hexStringToByteArray(
             "0974657374686f73743100001c8001000000780010aabbccdd11223344a0b0c0d010203040");
-    // MDNS record w/name "testhost1" & IPv6 address of aabb:ccdd:1122:3344:a0b0:c0d0:1020:3030
+    // MDNS record w/name "testhost1" & IPv6 address of aabb:ccdd:1122:3344:a0b0:c0d0:1020:3030.
+    // Also set cache flush bit for the records changed.
     private static final byte[] DATAIN_IPV6_2 = HexDump.hexStringToByteArray(
             "0974657374686f73743100001c8001000000780010aabbccdd11223344a0b0c0d010203030");
     // MDNS record w/name "test" & PTR to foo.bar.quxx
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
index 3e2ea35..5d58f5d 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
@@ -449,8 +449,8 @@
         verifyServiceInfo(serviceInfoCaptor.getAllValues().get(0),
                 "service-instance-1",
                 SERVICE_TYPE_LABELS,
-                /* ipv4Address= */ List.of(),
-                /* ipv6Address= */ List.of(),
+                /* ipv4Addresses= */ List.of(),
+                /* ipv6Addresses= */ List.of(),
                 /* port= */ 0,
                 /* subTypes= */ List.of(),
                 Collections.emptyMap(),
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java
index b9cb255..004ea7c 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketProviderTest.java
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.doCallRealMethod;
 import static org.mockito.Mockito.doReturn;
@@ -34,7 +35,6 @@
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.ConnectivityManager.NetworkCallback;
-import android.net.INetd;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
 import android.net.Network;
@@ -73,8 +73,6 @@
     private static final LinkAddress LINKADDRV6 =
             new LinkAddress("2001:0db8:85a3:0000:0000:8a2e:0370:7334/64");
     private static final Network TEST_NETWORK = new Network(123);
-    private static final Network LOCAL_NETWORK = new Network(INetd.LOCAL_NET_ID);
-
     @Mock private Context mContext;
     @Mock private Dependencies mDeps;
     @Mock private ConnectivityManager mCm;
@@ -101,7 +99,7 @@
             doCallRealMethod().when(mContext).getSystemService(TetheringManager.class);
         }
         doReturn(true).when(mDeps).canScanOnInterface(any());
-        doReturn(mTestNetworkIfaceWrapper).when(mDeps).getNetworkInterfaceByName(TEST_IFACE_NAME);
+        doReturn(mTestNetworkIfaceWrapper).when(mDeps).getNetworkInterfaceByName(anyString());
         doReturn(mLocalOnlyIfaceWrapper).when(mDeps)
                 .getNetworkInterfaceByName(LOCAL_ONLY_IFACE_NAME);
         doReturn(mTetheredIfaceWrapper).when(mDeps).getNetworkInterfaceByName(TETHERED_IFACE_NAME);
@@ -243,7 +241,7 @@
         verify(mLocalOnlyIfaceWrapper).getNetworkInterface();
         testCallback1.expectedNoCallback();
         testCallback2.expectedNoCallback();
-        testCallback3.expectedSocketCreatedForNetwork(LOCAL_NETWORK, List.of());
+        testCallback3.expectedSocketCreatedForNetwork(null /* network */, List.of());
 
         mHandler.post(() -> mTetheringEventCallback.onTetheredInterfacesChanged(
                 List.of(TETHERED_IFACE_NAME)));
@@ -251,7 +249,7 @@
         verify(mTetheredIfaceWrapper).getNetworkInterface();
         testCallback1.expectedNoCallback();
         testCallback2.expectedNoCallback();
-        testCallback3.expectedSocketCreatedForNetwork(LOCAL_NETWORK, List.of());
+        testCallback3.expectedSocketCreatedForNetwork(null /* network */, List.of());
 
         mHandler.post(() -> mSocketProvider.unrequestSocket(testCallback1));
         HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
@@ -269,14 +267,14 @@
         HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
         testCallback1.expectedNoCallback();
         testCallback2.expectedNoCallback();
-        testCallback3.expectedInterfaceDestroyedForNetwork(LOCAL_NETWORK);
+        testCallback3.expectedInterfaceDestroyedForNetwork(null /* network */);
 
         mHandler.post(() -> mSocketProvider.unrequestSocket(testCallback3));
         HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
         testCallback1.expectedNoCallback();
         testCallback2.expectedNoCallback();
         // Expect the socket destroy for tethered interface.
-        testCallback3.expectedInterfaceDestroyedForNetwork(LOCAL_NETWORK);
+        testCallback3.expectedInterfaceDestroyedForNetwork(null /* network */);
     }
 
     @Test
@@ -354,4 +352,55 @@
         verify(mCm, times(2)).unregisterNetworkCallback(any(NetworkCallback.class));
         verify(mTm, times(2)).unregisterTetheringEventCallback(any(TetheringEventCallback.class));
     }
+
+    @Test
+    public void testLinkPropertiesAreClearedAfterStopMonitoringSockets() {
+        startMonitoringSockets();
+
+        // Request a socket with null network.
+        final TestSocketCallback testCallback = new TestSocketCallback();
+        mHandler.post(() -> mSocketProvider.requestSocket(null, testCallback));
+        HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
+        testCallback.expectedNoCallback();
+
+        // Notify a LinkPropertiesChanged with TEST_NETWORK.
+        final LinkProperties testLp = new LinkProperties();
+        testLp.setInterfaceName(TEST_IFACE_NAME);
+        testLp.setLinkAddresses(List.of(LINKADDRV4));
+        mHandler.post(() -> mNetworkCallback.onLinkPropertiesChanged(TEST_NETWORK, testLp));
+        HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
+        verify(mTestNetworkIfaceWrapper, times(1)).getNetworkInterface();
+        testCallback.expectedSocketCreatedForNetwork(TEST_NETWORK, List.of(LINKADDRV4));
+
+        // Try to stop monitoring and unrequest the socket.
+        mHandler.post(mSocketProvider::requestStopWhenInactive);
+        HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
+        mHandler.post(()-> mSocketProvider.unrequestSocket(testCallback));
+        HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
+        testCallback.expectedInterfaceDestroyedForNetwork(TEST_NETWORK);
+        verify(mCm, times(1)).unregisterNetworkCallback(any(NetworkCallback.class));
+        verify(mTm, times(1)).unregisterTetheringEventCallback(any());
+
+        // Start sockets monitoring and request a socket again. Expected no socket created callback
+        // because all saved LinkProperties has been cleared.
+        mHandler.post(mSocketProvider::startMonitoringSockets);
+        HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
+        verify(mCm, times(2)).registerNetworkCallback(any(), any(NetworkCallback.class), any());
+        verify(mTm, times(2)).registerTetheringEventCallback(
+                any(), any(TetheringEventCallback.class));
+        mHandler.post(() -> mSocketProvider.requestSocket(null, testCallback));
+        HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
+        testCallback.expectedNoCallback();
+
+        // Notify a LinkPropertiesChanged with another network.
+        final LinkProperties otherLp = new LinkProperties();
+        final LinkAddress otherAddress = new LinkAddress("192.0.2.1/24");
+        final Network otherNetwork = new Network(456);
+        otherLp.setInterfaceName("test2");
+        otherLp.setLinkAddresses(List.of(otherAddress));
+        mHandler.post(() -> mNetworkCallback.onLinkPropertiesChanged(otherNetwork, otherLp));
+        HandlerUtils.waitForIdle(mHandler, DEFAULT_TIMEOUT);
+        verify(mTestNetworkIfaceWrapper, times(2)).getNetworkInterface();
+        testCallback.expectedSocketCreatedForNetwork(otherNetwork, List.of(otherAddress));
+    }
 }
diff --git a/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java b/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
index 5e7f0ff..e6aba22 100644
--- a/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
+++ b/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
@@ -86,8 +86,9 @@
     }
 
     @After
-    public void cleanUp() {
+    public void cleanUp() throws InterruptedException {
         mHandlerThread.quitSafely();
+        mHandlerThread.join();
     }
 
     private void initMockResources() {
diff --git a/tests/unit/java/com/android/server/net/IpConfigStoreTest.java b/tests/unit/java/com/android/server/net/IpConfigStoreTest.java
index 4adc999..dcf0f75 100644
--- a/tests/unit/java/com/android/server/net/IpConfigStoreTest.java
+++ b/tests/unit/java/com/android/server/net/IpConfigStoreTest.java
@@ -36,7 +36,6 @@
 
 import com.android.testutils.DevSdkIgnoreRule;
 import com.android.testutils.DevSdkIgnoreRunner;
-import com.android.testutils.HandlerUtils;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -58,7 +57,7 @@
 @RunWith(DevSdkIgnoreRunner.class)
 @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2)
 public class IpConfigStoreTest {
-    private static final int TIMEOUT_MS = 2_000;
+    private static final int TIMEOUT_MS = 5_000;
     private static final int KEY_CONFIG = 17;
     private static final String IFACE_1 = "eth0";
     private static final String IFACE_2 = "eth1";
@@ -139,6 +138,8 @@
                     }
                     @Override
                     public void quitHandlerThread(HandlerThread handlerThread) {
+                        // Don't join in here, quitHandlerThread runs on the
+                        // handler thread itself.
                         testHandlerThread.quitSafely();
                     }
         };
@@ -155,7 +156,7 @@
         final DelayedDiskWrite writer = new DelayedDiskWrite(dependencies);
         final IpConfigStore store = new IpConfigStore(writer);
         store.writeIpConfigurations(configFile.getPath(), expectedNetworks);
-        HandlerUtils.waitForIdle(testHandlerThread, TIMEOUT_MS);
+        testHandlerThread.join();
 
         // Read IP config from the file path.
         final ArrayMap<String, IpConfiguration> actualNetworks =
diff --git a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
index 8046263..04163fd 100644
--- a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
+++ b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
@@ -539,6 +539,7 @@
         mService = null;
 
         mHandlerThread.quitSafely();
+        mHandlerThread.join();
     }
 
     private void initWifiStats(NetworkStateSnapshot snapshot) throws Exception {
diff --git a/tools/gen_jarjar.py b/tools/gen_jarjar.py
index eb686ce..5129128 100755
--- a/tools/gen_jarjar.py
+++ b/tools/gen_jarjar.py
@@ -120,9 +120,11 @@
                         _get_toplevel_class(clazz) not in excluded_classes and
                         not any(r.fullmatch(clazz) for r in exclude_regexes)):
                     outfile.write(f'rule {clazz} {args.prefix}.@0\n')
-                    # Also include jarjar rules for unit tests of the class, so the package matches
-                    outfile.write(f'rule {clazz}Test {args.prefix}.@0\n')
-                    outfile.write(f'rule {clazz}Test$* {args.prefix}.@0\n')
+                    # Also include jarjar rules for unit tests of the class if it's not explicitly
+                    # excluded, so the package matches
+                    if not any(r.fullmatch(clazz + 'Test') for r in exclude_regexes):
+                        outfile.write(f'rule {clazz}Test {args.prefix}.@0\n')
+                        outfile.write(f'rule {clazz}Test$* {args.prefix}.@0\n')
 
 
 def _main():
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
deleted file mode 100644
index d22a576..0000000
--- a/tools/gn2bp/Android.bp.swp
+++ /dev/null
@@ -1,35277 +0,0 @@
-// Copyright (C) 2022 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.
-//
-// This file is automatically generated by gen_android_bp. Do not edit.
-
-build = ["Android.extras.bp"]
-
-// GN: PACKAGE
-package {
-    default_applicable_licenses: [
-        "external_cronet_license",
-    ],
-}
-
-// GN: //components/cronet/android:cronet_api_java
-// TODO(danstahr): add the API helpers separately after the main API is checked in and thoroughly reviewed
-filegroup {
-    name: "cronet_aml_api_sources",
-    srcs: [
-        ":cronet_aml_components_cronet_android_interface_api_version",
-        "components/cronet/android/api/src/android/net/http/BidirectionalStream.java",
-        "components/cronet/android/api/src/android/net/http/CallbackException.java",
-        "components/cronet/android/api/src/android/net/http/ConnectionMigrationOptions.java",
-        "components/cronet/android/api/src/android/net/http/DnsOptions.java",
-        "components/cronet/android/api/src/android/net/http/ExperimentalBidirectionalStream.java",
-        "components/cronet/android/api/src/android/net/http/ExperimentalHttpEngine.java",
-        "components/cronet/android/api/src/android/net/http/ExperimentalUrlRequest.java",
-        "components/cronet/android/api/src/android/net/http/HttpEngine.java",
-        "components/cronet/android/api/src/android/net/http/HttpException.java",
-        "components/cronet/android/api/src/android/net/http/IHttpEngineBuilder.java",
-        "components/cronet/android/api/src/android/net/http/InlineExecutionProhibitedException.java",
-        "components/cronet/android/api/src/android/net/http/NetworkException.java",
-        "components/cronet/android/api/src/android/net/http/NetworkQualityRttListener.java",
-        "components/cronet/android/api/src/android/net/http/NetworkQualityThroughputListener.java",
-        "components/cronet/android/api/src/android/net/http/QuicException.java",
-        "components/cronet/android/api/src/android/net/http/QuicOptions.java",
-        "components/cronet/android/api/src/android/net/http/RequestFinishedInfo.java",
-        "components/cronet/android/api/src/android/net/http/UploadDataProvider.java",
-        "components/cronet/android/api/src/android/net/http/UploadDataSink.java",
-        "components/cronet/android/api/src/android/net/http/UrlRequest.java",
-        "components/cronet/android/api/src/android/net/http/UrlResponseInfo.java",
-    ],
-}
-
-// GN: //base/allocator:buildflags
-cc_genrule {
-    name: "cronet_aml_base_allocator_buildflags",
-    cmd: "echo '--flags USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC=\"false\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/allocator/buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator:buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_allocator_buildflags__testing",
-    cmd: "echo '--flags USE_ALLOCATOR_SHIM=\"true\" USE_PARTITION_ALLOC=\"false\" USE_PARTITION_ALLOC_AS_MALLOC=\"false\" USE_BACKUP_REF_PTR=\"false\" USE_ASAN_BACKUP_REF_PTR=\"false\" USE_PARTITION_ALLOC_AS_GWP_ASAN_STORE=\"false\" USE_MTE_CHECKED_PTR=\"false\" FORCE_ENABLE_RAW_PTR_EXCLUSION=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/allocator/buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:chromecast_buildflags
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
-    cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:chromecast_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/allocator/partition_allocator/chromecast_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:chromecast_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__testing",
-    cmd: "echo '--flags PA_IS_CAST_ANDROID=\"false\" PA_IS_CASTOS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:chromecast_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/allocator/partition_allocator/chromecast_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:chromeos_buildflags
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
-    cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:chromeos_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/allocator/partition_allocator/chromeos_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:chromeos_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__testing",
-    cmd: "echo '--flags PA_IS_CHROMEOS_ASH=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:chromeos_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/allocator/partition_allocator/chromeos_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:debugging_buildflags
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
-    cmd: "echo '--flags PA_DCHECK_IS_ON=\"false\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"false\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:debugging_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__testing",
-    cmd: "echo '--flags PA_DCHECK_IS_ON=\"false\" PA_EXPENSIVE_DCHECKS_ARE_ON=\"false\" PA_DCHECK_IS_CONFIGURABLE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/allocator/partition_allocator/partition_alloc_base/debug/debugging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:logging_buildflags
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
-    cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:logging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/allocator/partition_allocator/logging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:logging_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_logging_buildflags__testing",
-    cmd: "echo '--flags PA_ENABLE_LOG_ERROR_NOT_REACHED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:logging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/allocator/partition_allocator/logging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:partition_alloc
-cc_library_static {
-    name: "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-    srcs: [
-        "base/allocator/partition_allocator/address_pool_manager.cc",
-        "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
-        "base/allocator/partition_allocator/address_space_randomization.cc",
-        "base/allocator/partition_allocator/allocation_guard.cc",
-        "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
-        "base/allocator/partition_allocator/gwp_asan_support.cc",
-        "base/allocator/partition_allocator/memory_reclaimer.cc",
-        "base/allocator/partition_allocator/oom.cc",
-        "base/allocator/partition_allocator/oom_callback.cc",
-        "base/allocator/partition_allocator/page_allocator.cc",
-        "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
-        "base/allocator/partition_allocator/partition_address_space.cc",
-        "base/allocator/partition_allocator/partition_alloc.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/check.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
-        "base/allocator/partition_allocator/partition_alloc_hooks.cc",
-        "base/allocator/partition_allocator/partition_bucket.cc",
-        "base/allocator/partition_allocator/partition_oom.cc",
-        "base/allocator/partition_allocator/partition_page.cc",
-        "base/allocator/partition_allocator/partition_root.cc",
-        "base/allocator/partition_allocator/partition_stats.cc",
-        "base/allocator/partition_allocator/random.cc",
-        "base/allocator/partition_allocator/reservation_offset_table.cc",
-        "base/allocator/partition_allocator/spinning_mutex.cc",
-        "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
-        "base/allocator/partition_allocator/starscan/pcscan.cc",
-        "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
-        "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
-        "base/allocator/partition_allocator/starscan/snapshot.cc",
-        "base/allocator/partition_allocator/starscan/stack/stack.cc",
-        "base/allocator/partition_allocator/starscan/stats_collector.cc",
-        "base/allocator/partition_allocator/starscan/write_protector.cc",
-        "base/allocator/partition_allocator/tagging.cc",
-        "base/allocator/partition_allocator/thread_cache.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_android_ndk_cpu_features",
-    ],
-    generated_headers: [
-        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_logging_buildflags",
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DIS_PARTITION_ALLOC_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DPA_PCSCAN_STACK_SUPPORTED",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O3",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/android_ndk/sources/android/cpufeatures/",
-    ],
-    header_libs: [
-        "libgtest_prod_headers",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            srcs: [
-                "base/allocator/partition_allocator/starscan/stack/asm/arm/push_registers_asm.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "base/allocator/partition_allocator/starscan/stack/asm/arm64/push_registers_asm.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-march=armv8-a+memtag",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc",
-            ],
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base/allocator/partition_allocator:partition_alloc__testing
-cc_library_static {
-    name: "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-    srcs: [
-        "base/allocator/partition_allocator/address_pool_manager.cc",
-        "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
-        "base/allocator/partition_allocator/address_space_randomization.cc",
-        "base/allocator/partition_allocator/allocation_guard.cc",
-        "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
-        "base/allocator/partition_allocator/gwp_asan_support.cc",
-        "base/allocator/partition_allocator/memory_reclaimer.cc",
-        "base/allocator/partition_allocator/oom.cc",
-        "base/allocator/partition_allocator/oom_callback.cc",
-        "base/allocator/partition_allocator/page_allocator.cc",
-        "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
-        "base/allocator/partition_allocator/partition_address_space.cc",
-        "base/allocator/partition_allocator/partition_alloc.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/check.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
-        "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
-        "base/allocator/partition_allocator/partition_alloc_hooks.cc",
-        "base/allocator/partition_allocator/partition_bucket.cc",
-        "base/allocator/partition_allocator/partition_oom.cc",
-        "base/allocator/partition_allocator/partition_page.cc",
-        "base/allocator/partition_allocator/partition_root.cc",
-        "base/allocator/partition_allocator/partition_stats.cc",
-        "base/allocator/partition_allocator/random.cc",
-        "base/allocator/partition_allocator/reservation_offset_table.cc",
-        "base/allocator/partition_allocator/spinning_mutex.cc",
-        "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
-        "base/allocator/partition_allocator/starscan/pcscan.cc",
-        "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
-        "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
-        "base/allocator/partition_allocator/starscan/snapshot.cc",
-        "base/allocator/partition_allocator/starscan/stack/stack.cc",
-        "base/allocator/partition_allocator/starscan/stats_collector.cc",
-        "base/allocator/partition_allocator/starscan/write_protector.cc",
-        "base/allocator/partition_allocator/tagging.cc",
-        "base/allocator/partition_allocator/thread_cache.cc",
-    ],
-    host_supported: true,
-    generated_headers: [
-        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_logging_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_allocator_partition_allocator_chromecast_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_chromeos_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_debugging_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_logging_buildflags__testing",
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DIS_PARTITION_ALLOC_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DPA_PCSCAN_STACK_SUPPORTED",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O3",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            srcs: [
-                "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
-                "base/allocator/partition_allocator/starscan/stack/asm/arm/push_registers_asm.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
-                "base/allocator/partition_allocator/starscan/stack/asm/arm64/push_registers_asm.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-march=armv8-a+memtag",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
-                "base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-msse3",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
-                "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
-                "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-        },
-        host: {
-            srcs: [
-                "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
-            ],
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //base/allocator/partition_allocator:partition_alloc_buildflags
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags",
-    cmd: "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:partition_alloc_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/allocator/partition_allocator/partition_alloc_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_allocator_partition_allocator_partition_alloc_buildflags__testing",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:partition_alloc_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ $$CC_OS != 'android' ]]; " +
-         "then " +
-         "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:partition_alloc_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:partition_alloc_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:partition_alloc_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SUPPORT=\"true\" ENABLE_BACKUP_REF_PTR_SLOW_CHECKS=\"false\" ENABLE_DANGLING_RAW_PTR_CHECKS=\"false\" PUT_REF_COUNT_IN_PREVIOUS_SLOT=\"true\" ENABLE_GWP_ASAN_SUPPORT=\"true\" ENABLE_MTE_CHECKED_PTR_SUPPORT=\"false\" RECORD_ALLOC_INFO=\"false\" USE_FREESLOT_BITMAP=\"false\" ENABLE_SHADOW_METADATA_FOR_64_BITS_POINTERS=\"false\" STARSCAN=\"true\" PA_USE_BASE_TRACING=\"true\" ENABLE_PKEYS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base/allocator/partition_allocator:partition_alloc_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    host_supported: true,
-    out: [
-        "base/allocator/partition_allocator/partition_alloc_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:anchor_functions_buildflags
-cc_genrule {
-    name: "cronet_aml_base_anchor_functions_buildflags",
-    cmd: "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:anchor_functions_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/android/library_loader/anchor_functions_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:anchor_functions_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_anchor_functions_buildflags__testing",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:anchor_functions_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ $$CC_OS != 'android' ]]; " +
-         "then " +
-         "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:anchor_functions_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:anchor_functions_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:anchor_functions_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags USE_LLD=\"true\" SUPPORTS_CODE_ORDERING=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:anchor_functions_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    host_supported: true,
-    out: [
-        "base/android/library_loader/anchor_functions_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:android_runtime_jni_headers
-cc_genrule {
-    name: "cronet_aml_base_android_runtime_jni_headers",
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/base/android_runtime_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--jar_file " +
-         "$(location :current_android_jar) " +
-         "--output_name " +
-         "Runnable_jni.h " +
-         "--output_name " +
-         "Runtime_jni.h " +
-         "--input_file " +
-         "java/lang/Runnable.class " +
-         "--input_file " +
-         "java/lang/Runtime.class " +
-         "--javap " +
-         "$$(find $${OUT_DIR:-out}/.path -name javap) " +
-         "--package_prefix " +
-         "android.net.http.internal",
-    out: [
-        "base/android_runtime_jni_headers/Runnable_jni.h",
-        "base/android_runtime_jni_headers/Runtime_jni.h",
-    ],
-    tool_files: [
-        ":current_android_jar",
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:android_runtime_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_base_android_runtime_jni_headers__testing",
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/base/android_runtime_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--jar_file " +
-         "$(location :current_android_jar) " +
-         "--output_name " +
-         "Runnable_jni.h " +
-         "--output_name " +
-         "Runtime_jni.h " +
-         "--input_file " +
-         "java/lang/Runnable.class " +
-         "--input_file " +
-         "java/lang/Runtime.class " +
-         "--javap " +
-         "$$(find $${OUT_DIR:-out}/.path -name javap)",
-    out: [
-        "base/android_runtime_jni_headers/Runnable_jni.h",
-        "base/android_runtime_jni_headers/Runtime_jni.h",
-    ],
-    tool_files: [
-        ":current_android_jar",
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:base
-cc_library_static {
-    name: "cronet_aml_base_base",
-    srcs: [
-        "base/allocator/allocator_check.cc",
-        "base/allocator/allocator_extension.cc",
-        "base/allocator/dispatcher/dispatcher.cc",
-        "base/allocator/dispatcher/internal/dispatch_data.cc",
-        "base/allocator/dispatcher/reentry_guard.cc",
-        "base/allocator/partition_allocator/shim/allocator_shim.cc",
-        "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
-        "base/android/android_hardware_buffer_compat.cc",
-        "base/android/android_image_reader_compat.cc",
-        "base/android/apk_assets.cc",
-        "base/android/application_status_listener.cc",
-        "base/android/base_feature_list.cc",
-        "base/android/base_features.cc",
-        "base/android/base_jni_onload.cc",
-        "base/android/build_info.cc",
-        "base/android/bundle_utils.cc",
-        "base/android/callback_android.cc",
-        "base/android/child_process_service.cc",
-        "base/android/command_line_android.cc",
-        "base/android/content_uri_utils.cc",
-        "base/android/cpu_features.cc",
-        "base/android/early_trace_event_binding.cc",
-        "base/android/event_log.cc",
-        "base/android/feature_list_jni.cc",
-        "base/android/features_jni.cc",
-        "base/android/field_trial_list.cc",
-        "base/android/important_file_writer_android.cc",
-        "base/android/int_string_callback.cc",
-        "base/android/jank_metric_uma_recorder.cc",
-        "base/android/java_exception_reporter.cc",
-        "base/android/java_handler_thread.cc",
-        "base/android/java_heap_dump_generator.cc",
-        "base/android/java_runtime.cc",
-        "base/android/jni_android.cc",
-        "base/android/jni_array.cc",
-        "base/android/jni_registrar.cc",
-        "base/android/jni_string.cc",
-        "base/android/jni_utils.cc",
-        "base/android/jni_weak_ref.cc",
-        "base/android/library_loader/anchor_functions.cc",
-        "base/android/library_loader/library_loader_hooks.cc",
-        "base/android/library_loader/library_prefetcher.cc",
-        "base/android/library_loader/library_prefetcher_hooks.cc",
-        "base/android/locale_utils.cc",
-        "base/android/memory_pressure_listener_android.cc",
-        "base/android/native_uma_recorder.cc",
-        "base/android/path_service_android.cc",
-        "base/android/path_utils.cc",
-        "base/android/radio_utils.cc",
-        "base/android/reached_addresses_bitset.cc",
-        "base/android/remove_stale_data.cc",
-        "base/android/scoped_hardware_buffer_fence_sync.cc",
-        "base/android/scoped_hardware_buffer_handle.cc",
-        "base/android/scoped_java_ref.cc",
-        "base/android/statistics_recorder_android.cc",
-        "base/android/sys_utils.cc",
-        "base/android/task_scheduler/post_task_android.cc",
-        "base/android/task_scheduler/task_runner_android.cc",
-        "base/android/thread_instruction_count.cc",
-        "base/android/timezone_utils.cc",
-        "base/android/trace_event_binding.cc",
-        "base/android/unguessable_token_android.cc",
-        "base/at_exit.cc",
-        "base/barrier_closure.cc",
-        "base/base64.cc",
-        "base/base64url.cc",
-        "base/base_paths.cc",
-        "base/base_paths_android.cc",
-        "base/big_endian.cc",
-        "base/build_time.cc",
-        "base/callback_list.cc",
-        "base/check.cc",
-        "base/check_is_test.cc",
-        "base/check_op.cc",
-        "base/command_line.cc",
-        "base/containers/flat_tree.cc",
-        "base/containers/intrusive_heap.cc",
-        "base/containers/linked_list.cc",
-        "base/cpu.cc",
-        "base/cpu_reduction_experiment.cc",
-        "base/debug/activity_analyzer.cc",
-        "base/debug/activity_tracker.cc",
-        "base/debug/alias.cc",
-        "base/debug/asan_invalid_access.cc",
-        "base/debug/buffered_dwarf_reader.cc",
-        "base/debug/crash_logging.cc",
-        "base/debug/debugger.cc",
-        "base/debug/debugger_posix.cc",
-        "base/debug/dump_without_crashing.cc",
-        "base/debug/dwarf_line_no.cc",
-        "base/debug/elf_reader.cc",
-        "base/debug/proc_maps_linux.cc",
-        "base/debug/profiler.cc",
-        "base/debug/stack_trace.cc",
-        "base/debug/stack_trace_android.cc",
-        "base/debug/task_trace.cc",
-        "base/environment.cc",
-        "base/feature_list.cc",
-        "base/features.cc",
-        "base/file_descriptor_posix.cc",
-        "base/file_descriptor_store.cc",
-        "base/files/file.cc",
-        "base/files/file_descriptor_watcher_posix.cc",
-        "base/files/file_enumerator.cc",
-        "base/files/file_enumerator_posix.cc",
-        "base/files/file_path.cc",
-        "base/files/file_path_watcher.cc",
-        "base/files/file_path_watcher_inotify.cc",
-        "base/files/file_posix.cc",
-        "base/files/file_proxy.cc",
-        "base/files/file_tracing.cc",
-        "base/files/file_util.cc",
-        "base/files/file_util_android.cc",
-        "base/files/file_util_posix.cc",
-        "base/files/important_file_writer.cc",
-        "base/files/important_file_writer_cleaner.cc",
-        "base/files/memory_mapped_file.cc",
-        "base/files/memory_mapped_file_posix.cc",
-        "base/files/safe_base_name.cc",
-        "base/files/scoped_file.cc",
-        "base/files/scoped_file_android.cc",
-        "base/files/scoped_temp_dir.cc",
-        "base/functional/callback_helpers.cc",
-        "base/functional/callback_internal.cc",
-        "base/guid.cc",
-        "base/hash/hash.cc",
-        "base/hash/legacy_hash.cc",
-        "base/hash/md5_boringssl.cc",
-        "base/hash/sha1_boringssl.cc",
-        "base/json/json_file_value_serializer.cc",
-        "base/json/json_parser.cc",
-        "base/json/json_reader.cc",
-        "base/json/json_string_value_serializer.cc",
-        "base/json/json_value_converter.cc",
-        "base/json/json_writer.cc",
-        "base/json/string_escape.cc",
-        "base/json/values_util.cc",
-        "base/lazy_instance_helpers.cc",
-        "base/linux_util.cc",
-        "base/location.cc",
-        "base/logging.cc",
-        "base/memory/aligned_memory.cc",
-        "base/memory/discardable_memory.cc",
-        "base/memory/discardable_memory_allocator.cc",
-        "base/memory/discardable_shared_memory.cc",
-        "base/memory/madv_free_discardable_memory_allocator_posix.cc",
-        "base/memory/madv_free_discardable_memory_posix.cc",
-        "base/memory/memory_pressure_listener.cc",
-        "base/memory/memory_pressure_monitor.cc",
-        "base/memory/nonscannable_memory.cc",
-        "base/memory/page_size_posix.cc",
-        "base/memory/platform_shared_memory_handle.cc",
-        "base/memory/platform_shared_memory_mapper_android.cc",
-        "base/memory/platform_shared_memory_region.cc",
-        "base/memory/platform_shared_memory_region_android.cc",
-        "base/memory/raw_ptr.cc",
-        "base/memory/raw_ptr_asan_bound_arg_tracker.cc",
-        "base/memory/raw_ptr_asan_service.cc",
-        "base/memory/read_only_shared_memory_region.cc",
-        "base/memory/ref_counted.cc",
-        "base/memory/ref_counted_memory.cc",
-        "base/memory/shared_memory_mapper.cc",
-        "base/memory/shared_memory_mapping.cc",
-        "base/memory/shared_memory_security_policy.cc",
-        "base/memory/shared_memory_tracker.cc",
-        "base/memory/unsafe_shared_memory_pool.cc",
-        "base/memory/unsafe_shared_memory_region.cc",
-        "base/memory/weak_ptr.cc",
-        "base/memory/writable_shared_memory_region.cc",
-        "base/message_loop/message_pump.cc",
-        "base/message_loop/message_pump_android.cc",
-        "base/message_loop/message_pump_default.cc",
-        "base/message_loop/message_pump_epoll.cc",
-        "base/message_loop/message_pump_libevent.cc",
-        "base/message_loop/watchable_io_message_pump_posix.cc",
-        "base/message_loop/work_id_provider.cc",
-        "base/metrics/bucket_ranges.cc",
-        "base/metrics/crc32.cc",
-        "base/metrics/dummy_histogram.cc",
-        "base/metrics/field_trial.cc",
-        "base/metrics/field_trial_param_associator.cc",
-        "base/metrics/field_trial_params.cc",
-        "base/metrics/histogram.cc",
-        "base/metrics/histogram_base.cc",
-        "base/metrics/histogram_delta_serialization.cc",
-        "base/metrics/histogram_functions.cc",
-        "base/metrics/histogram_samples.cc",
-        "base/metrics/histogram_snapshot_manager.cc",
-        "base/metrics/metrics_hashes.cc",
-        "base/metrics/persistent_histogram_allocator.cc",
-        "base/metrics/persistent_histogram_storage.cc",
-        "base/metrics/persistent_memory_allocator.cc",
-        "base/metrics/persistent_sample_map.cc",
-        "base/metrics/ranges_manager.cc",
-        "base/metrics/sample_map.cc",
-        "base/metrics/sample_vector.cc",
-        "base/metrics/single_sample_metrics.cc",
-        "base/metrics/sparse_histogram.cc",
-        "base/metrics/statistics_recorder.cc",
-        "base/metrics/user_metrics.cc",
-        "base/native_library.cc",
-        "base/native_library_posix.cc",
-        "base/observer_list_internal.cc",
-        "base/observer_list_threadsafe.cc",
-        "base/observer_list_types.cc",
-        "base/one_shot_event.cc",
-        "base/os_compat_android.cc",
-        "base/path_service.cc",
-        "base/pending_task.cc",
-        "base/pickle.cc",
-        "base/posix/can_lower_nice_to.cc",
-        "base/posix/file_descriptor_shuffle.cc",
-        "base/posix/global_descriptors.cc",
-        "base/posix/safe_strerror.cc",
-        "base/posix/unix_domain_socket.cc",
-        "base/power_monitor/battery_level_provider.cc",
-        "base/power_monitor/battery_state_sampler.cc",
-        "base/power_monitor/moving_average.cc",
-        "base/power_monitor/power_monitor.cc",
-        "base/power_monitor/power_monitor_device_source.cc",
-        "base/power_monitor/power_monitor_device_source_android.cc",
-        "base/power_monitor/power_monitor_features.cc",
-        "base/power_monitor/power_monitor_source.cc",
-        "base/power_monitor/sampling_event_source.cc",
-        "base/power_monitor/timer_sampling_event_source.cc",
-        "base/process/environment_internal.cc",
-        "base/process/internal_linux.cc",
-        "base/process/kill.cc",
-        "base/process/kill_posix.cc",
-        "base/process/launch.cc",
-        "base/process/launch_posix.cc",
-        "base/process/memory.cc",
-        "base/process/memory_linux.cc",
-        "base/process/process_android.cc",
-        "base/process/process_handle.cc",
-        "base/process/process_handle_linux.cc",
-        "base/process/process_handle_posix.cc",
-        "base/process/process_iterator.cc",
-        "base/process/process_iterator_linux.cc",
-        "base/process/process_metrics.cc",
-        "base/process/process_metrics_linux.cc",
-        "base/process/process_metrics_posix.cc",
-        "base/process/process_posix.cc",
-        "base/profiler/arm_cfi_table.cc",
-        "base/profiler/frame.cc",
-        "base/profiler/metadata_recorder.cc",
-        "base/profiler/module_cache.cc",
-        "base/profiler/module_cache_posix.cc",
-        "base/profiler/sample_metadata.cc",
-        "base/profiler/sampling_profiler_thread_token.cc",
-        "base/profiler/stack_base_address_posix.cc",
-        "base/profiler/stack_buffer.cc",
-        "base/profiler/stack_copier.cc",
-        "base/profiler/stack_copier_signal.cc",
-        "base/profiler/stack_copier_suspend.cc",
-        "base/profiler/stack_sampler.cc",
-        "base/profiler/stack_sampler_android.cc",
-        "base/profiler/stack_sampler_impl.cc",
-        "base/profiler/stack_sampling_profiler.cc",
-        "base/profiler/thread_delegate_posix.cc",
-        "base/profiler/unwinder.cc",
-        "base/rand_util.cc",
-        "base/rand_util_posix.cc",
-        "base/run_loop.cc",
-        "base/sampling_heap_profiler/lock_free_address_hash_set.cc",
-        "base/sampling_heap_profiler/poisson_allocation_sampler.cc",
-        "base/sampling_heap_profiler/sampling_heap_profiler.cc",
-        "base/scoped_add_feature_flags.cc",
-        "base/scoped_environment_variable_override.cc",
-        "base/scoped_native_library.cc",
-        "base/sequence_checker.cc",
-        "base/sequence_checker_impl.cc",
-        "base/sequence_token.cc",
-        "base/strings/abseil_string_conversions.cc",
-        "base/strings/abseil_string_number_conversions.cc",
-        "base/strings/escape.cc",
-        "base/strings/latin1_string_conversions.cc",
-        "base/strings/pattern.cc",
-        "base/strings/safe_sprintf.cc",
-        "base/strings/strcat.cc",
-        "base/strings/string_number_conversions.cc",
-        "base/strings/string_piece.cc",
-        "base/strings/string_split.cc",
-        "base/strings/string_util.cc",
-        "base/strings/string_util_constants.cc",
-        "base/strings/stringprintf.cc",
-        "base/strings/sys_string_conversions_posix.cc",
-        "base/strings/utf_offset_string_conversions.cc",
-        "base/strings/utf_string_conversion_utils.cc",
-        "base/strings/utf_string_conversions.cc",
-        "base/substring_set_matcher/matcher_string_pattern.cc",
-        "base/substring_set_matcher/substring_set_matcher.cc",
-        "base/supports_user_data.cc",
-        "base/sync_socket.cc",
-        "base/sync_socket_posix.cc",
-        "base/synchronization/atomic_flag.cc",
-        "base/synchronization/condition_variable_posix.cc",
-        "base/synchronization/lock.cc",
-        "base/synchronization/lock_impl_posix.cc",
-        "base/synchronization/waitable_event_posix.cc",
-        "base/synchronization/waitable_event_watcher_posix.cc",
-        "base/syslog_logging.cc",
-        "base/system/sys_info.cc",
-        "base/system/sys_info_android.cc",
-        "base/system/sys_info_linux.cc",
-        "base/system/sys_info_posix.cc",
-        "base/system/system_monitor.cc",
-        "base/task/cancelable_task_tracker.cc",
-        "base/task/common/checked_lock_impl.cc",
-        "base/task/common/lazy_now.cc",
-        "base/task/common/operations_controller.cc",
-        "base/task/common/scoped_defer_task_posting.cc",
-        "base/task/common/task_annotator.cc",
-        "base/task/current_thread.cc",
-        "base/task/default_delayed_task_handle_delegate.cc",
-        "base/task/deferred_sequenced_task_runner.cc",
-        "base/task/delayed_task_handle.cc",
-        "base/task/lazy_thread_pool_task_runner.cc",
-        "base/task/post_job.cc",
-        "base/task/scoped_set_task_priority_for_current_thread.cc",
-        "base/task/sequence_manager/associated_thread_id.cc",
-        "base/task/sequence_manager/atomic_flag_set.cc",
-        "base/task/sequence_manager/delayed_task_handle_delegate.cc",
-        "base/task/sequence_manager/enqueue_order_generator.cc",
-        "base/task/sequence_manager/fence.cc",
-        "base/task/sequence_manager/hierarchical_timing_wheel.cc",
-        "base/task/sequence_manager/sequence_manager.cc",
-        "base/task/sequence_manager/sequence_manager_impl.cc",
-        "base/task/sequence_manager/sequenced_task_source.cc",
-        "base/task/sequence_manager/task_order.cc",
-        "base/task/sequence_manager/task_queue.cc",
-        "base/task/sequence_manager/task_queue_impl.cc",
-        "base/task/sequence_manager/task_queue_selector.cc",
-        "base/task/sequence_manager/tasks.cc",
-        "base/task/sequence_manager/thread_controller.cc",
-        "base/task/sequence_manager/thread_controller_impl.cc",
-        "base/task/sequence_manager/thread_controller_power_monitor.cc",
-        "base/task/sequence_manager/thread_controller_with_message_pump_impl.cc",
-        "base/task/sequence_manager/time_domain.cc",
-        "base/task/sequence_manager/timing_wheel.cc",
-        "base/task/sequence_manager/wake_up_queue.cc",
-        "base/task/sequence_manager/work_deduplicator.cc",
-        "base/task/sequence_manager/work_queue.cc",
-        "base/task/sequence_manager/work_queue_sets.cc",
-        "base/task/sequenced_task_runner.cc",
-        "base/task/simple_task_executor.cc",
-        "base/task/single_thread_task_executor.cc",
-        "base/task/single_thread_task_runner.cc",
-        "base/task/task_executor.cc",
-        "base/task/task_features.cc",
-        "base/task/task_runner.cc",
-        "base/task/task_traits.cc",
-        "base/task/thread_pool.cc",
-        "base/task/thread_pool/delayed_priority_queue.cc",
-        "base/task/thread_pool/delayed_task_manager.cc",
-        "base/task/thread_pool/environment_config.cc",
-        "base/task/thread_pool/initialization_util.cc",
-        "base/task/thread_pool/job_task_source.cc",
-        "base/task/thread_pool/pooled_parallel_task_runner.cc",
-        "base/task/thread_pool/pooled_sequenced_task_runner.cc",
-        "base/task/thread_pool/pooled_single_thread_task_runner_manager.cc",
-        "base/task/thread_pool/pooled_task_runner_delegate.cc",
-        "base/task/thread_pool/priority_queue.cc",
-        "base/task/thread_pool/sequence.cc",
-        "base/task/thread_pool/service_thread.cc",
-        "base/task/thread_pool/task.cc",
-        "base/task/thread_pool/task_source.cc",
-        "base/task/thread_pool/task_source_sort_key.cc",
-        "base/task/thread_pool/task_tracker.cc",
-        "base/task/thread_pool/thread_group.cc",
-        "base/task/thread_pool/thread_group_impl.cc",
-        "base/task/thread_pool/thread_group_native.cc",
-        "base/task/thread_pool/thread_pool_impl.cc",
-        "base/task/thread_pool/thread_pool_instance.cc",
-        "base/task/thread_pool/worker_thread.cc",
-        "base/task/thread_pool/worker_thread_stack.cc",
-        "base/third_party/cityhash/city.cc",
-        "base/third_party/cityhash_v103/src/city_v103.cc",
-        "base/third_party/nspr/prtime.cc",
-        "base/third_party/superfasthash/superfasthash.c",
-        "base/threading/hang_watcher.cc",
-        "base/threading/platform_thread.cc",
-        "base/threading/platform_thread_android.cc",
-        "base/threading/platform_thread_internal_posix.cc",
-        "base/threading/platform_thread_posix.cc",
-        "base/threading/platform_thread_ref.cc",
-        "base/threading/post_task_and_reply_impl.cc",
-        "base/threading/scoped_blocking_call.cc",
-        "base/threading/scoped_blocking_call_internal.cc",
-        "base/threading/scoped_thread_priority.cc",
-        "base/threading/sequence_local_storage_map.cc",
-        "base/threading/sequence_local_storage_slot.cc",
-        "base/threading/sequenced_task_runner_handle.cc",
-        "base/threading/simple_thread.cc",
-        "base/threading/thread.cc",
-        "base/threading/thread_checker.cc",
-        "base/threading/thread_checker_impl.cc",
-        "base/threading/thread_collision_warner.cc",
-        "base/threading/thread_id_name_manager.cc",
-        "base/threading/thread_local_storage.cc",
-        "base/threading/thread_local_storage_posix.cc",
-        "base/threading/thread_restrictions.cc",
-        "base/threading/thread_task_runner_handle.cc",
-        "base/threading/watchdog.cc",
-        "base/time/clock.cc",
-        "base/time/default_clock.cc",
-        "base/time/default_tick_clock.cc",
-        "base/time/tick_clock.cc",
-        "base/time/time.cc",
-        "base/time/time_android.cc",
-        "base/time/time_conversion_posix.cc",
-        "base/time/time_delta_from_string.cc",
-        "base/time/time_exploded_icu.cc",
-        "base/time/time_exploded_posix.cc",
-        "base/time/time_now_posix.cc",
-        "base/time/time_override.cc",
-        "base/time/time_to_iso8601.cc",
-        "base/timer/elapsed_timer.cc",
-        "base/timer/hi_res_timer_manager_posix.cc",
-        "base/timer/lap_timer.cc",
-        "base/timer/timer.cc",
-        "base/timer/wall_clock_timer.cc",
-        "base/token.cc",
-        "base/trace_event/heap_profiler_allocation_context.cc",
-        "base/trace_event/heap_profiler_allocation_context_tracker.cc",
-        "base/trace_event/memory_allocator_dump_guid.cc",
-        "base/trace_event/trace_event_stub.cc",
-        "base/trace_event/trace_id_helper.cc",
-        "base/unguessable_token.cc",
-        "base/value_iterators.cc",
-        "base/values.cc",
-        "base/version.cc",
-        "base/vlog.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    generated_headers: [
-        "cronet_aml_base_allocator_buildflags",
-        "cronet_aml_base_anchor_functions_buildflags",
-        "cronet_aml_base_android_runtime_jni_headers",
-        "cronet_aml_base_base_jni_headers",
-        "cronet_aml_base_build_date",
-        "cronet_aml_base_cfi_buildflags",
-        "cronet_aml_base_clang_profiling_buildflags",
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_feature_list_buildflags",
-        "cronet_aml_base_ios_cronet_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_base_message_pump_buildflags",
-        "cronet_aml_base_orderfile_buildflags",
-        "cronet_aml_base_parsing_buildflags",
-        "cronet_aml_base_power_monitor_buildflags",
-        "cronet_aml_base_profiler_buildflags",
-        "cronet_aml_base_sanitizer_buildflags",
-        "cronet_aml_base_synchronization_buildflags",
-        "cronet_aml_base_tracing_buildflags",
-        "cronet_aml_build_branding_buildflags",
-        "cronet_aml_build_chromecast_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_build_config_compiler_compiler_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_allocator_buildflags",
-        "cronet_aml_base_anchor_functions_buildflags",
-        "cronet_aml_base_android_runtime_jni_headers",
-        "cronet_aml_base_base_jni_headers",
-        "cronet_aml_base_build_date",
-        "cronet_aml_base_cfi_buildflags",
-        "cronet_aml_base_clang_profiling_buildflags",
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_feature_list_buildflags",
-        "cronet_aml_base_ios_cronet_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_base_message_pump_buildflags",
-        "cronet_aml_base_orderfile_buildflags",
-        "cronet_aml_base_parsing_buildflags",
-        "cronet_aml_base_power_monitor_buildflags",
-        "cronet_aml_base_profiler_buildflags",
-        "cronet_aml_base_sanitizer_buildflags",
-        "cronet_aml_base_synchronization_buildflags",
-        "cronet_aml_base_tracing_buildflags",
-        "cronet_aml_build_branding_buildflags",
-        "cronet_aml_build_chromecast_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_build_config_compiler_compiler_buildflags",
-    ],
-    export_header_lib_headers: [
-        "libgtest_prod_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DBASE_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/android_ndk/sources/android/cpufeatures/",
-        "third_party/boringssl/src/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    header_libs: [
-        "libgtest_prod_headers",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            srcs: [
-                "base/android/reached_code_profiler.cc",
-                "base/profiler/chrome_unwind_info_android.cc",
-                "base/profiler/chrome_unwinder_android.cc",
-                "base/profiler/chrome_unwinder_android_v2.cc",
-                "base/trace_event/cfi_backtrace_android.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "base/android/reached_code_profiler.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "base/android/reached_code_profiler_stub.cc",
-            ],
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "base/android/reached_code_profiler_stub.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base:base__testing
-cc_library_static {
-    name: "cronet_aml_base_base__testing",
-    srcs: [
-        "base/allocator/allocator_check.cc",
-        "base/allocator/allocator_extension.cc",
-        "base/allocator/dispatcher/dispatcher.cc",
-        "base/allocator/dispatcher/internal/dispatch_data.cc",
-        "base/allocator/dispatcher/reentry_guard.cc",
-        "base/allocator/partition_allocator/shim/allocator_shim.cc",
-        "base/at_exit.cc",
-        "base/barrier_closure.cc",
-        "base/base64.cc",
-        "base/base64url.cc",
-        "base/base_paths.cc",
-        "base/big_endian.cc",
-        "base/build_time.cc",
-        "base/callback_list.cc",
-        "base/check.cc",
-        "base/check_is_test.cc",
-        "base/check_op.cc",
-        "base/command_line.cc",
-        "base/containers/flat_tree.cc",
-        "base/containers/intrusive_heap.cc",
-        "base/containers/linked_list.cc",
-        "base/cpu.cc",
-        "base/cpu_reduction_experiment.cc",
-        "base/debug/activity_analyzer.cc",
-        "base/debug/activity_tracker.cc",
-        "base/debug/alias.cc",
-        "base/debug/asan_invalid_access.cc",
-        "base/debug/buffered_dwarf_reader.cc",
-        "base/debug/crash_logging.cc",
-        "base/debug/debugger.cc",
-        "base/debug/debugger_posix.cc",
-        "base/debug/dump_without_crashing.cc",
-        "base/debug/dwarf_line_no.cc",
-        "base/debug/elf_reader.cc",
-        "base/debug/proc_maps_linux.cc",
-        "base/debug/profiler.cc",
-        "base/debug/stack_trace.cc",
-        "base/debug/task_trace.cc",
-        "base/environment.cc",
-        "base/feature_list.cc",
-        "base/features.cc",
-        "base/file_descriptor_posix.cc",
-        "base/file_descriptor_store.cc",
-        "base/files/file.cc",
-        "base/files/file_descriptor_watcher_posix.cc",
-        "base/files/file_enumerator.cc",
-        "base/files/file_enumerator_posix.cc",
-        "base/files/file_path.cc",
-        "base/files/file_path_watcher.cc",
-        "base/files/file_path_watcher_inotify.cc",
-        "base/files/file_posix.cc",
-        "base/files/file_proxy.cc",
-        "base/files/file_tracing.cc",
-        "base/files/file_util.cc",
-        "base/files/file_util_posix.cc",
-        "base/files/important_file_writer.cc",
-        "base/files/important_file_writer_cleaner.cc",
-        "base/files/memory_mapped_file.cc",
-        "base/files/memory_mapped_file_posix.cc",
-        "base/files/safe_base_name.cc",
-        "base/files/scoped_file.cc",
-        "base/files/scoped_temp_dir.cc",
-        "base/functional/callback_helpers.cc",
-        "base/functional/callback_internal.cc",
-        "base/guid.cc",
-        "base/hash/hash.cc",
-        "base/hash/legacy_hash.cc",
-        "base/hash/md5_boringssl.cc",
-        "base/hash/sha1_boringssl.cc",
-        "base/json/json_file_value_serializer.cc",
-        "base/json/json_parser.cc",
-        "base/json/json_reader.cc",
-        "base/json/json_string_value_serializer.cc",
-        "base/json/json_value_converter.cc",
-        "base/json/json_writer.cc",
-        "base/json/string_escape.cc",
-        "base/json/values_util.cc",
-        "base/lazy_instance_helpers.cc",
-        "base/linux_util.cc",
-        "base/location.cc",
-        "base/logging.cc",
-        "base/memory/aligned_memory.cc",
-        "base/memory/discardable_memory.cc",
-        "base/memory/discardable_memory_allocator.cc",
-        "base/memory/discardable_shared_memory.cc",
-        "base/memory/madv_free_discardable_memory_allocator_posix.cc",
-        "base/memory/madv_free_discardable_memory_posix.cc",
-        "base/memory/memory_pressure_listener.cc",
-        "base/memory/memory_pressure_monitor.cc",
-        "base/memory/nonscannable_memory.cc",
-        "base/memory/page_size_posix.cc",
-        "base/memory/platform_shared_memory_handle.cc",
-        "base/memory/platform_shared_memory_region.cc",
-        "base/memory/raw_ptr.cc",
-        "base/memory/raw_ptr_asan_bound_arg_tracker.cc",
-        "base/memory/raw_ptr_asan_service.cc",
-        "base/memory/read_only_shared_memory_region.cc",
-        "base/memory/ref_counted.cc",
-        "base/memory/ref_counted_memory.cc",
-        "base/memory/shared_memory_mapper.cc",
-        "base/memory/shared_memory_mapping.cc",
-        "base/memory/shared_memory_security_policy.cc",
-        "base/memory/shared_memory_tracker.cc",
-        "base/memory/unsafe_shared_memory_pool.cc",
-        "base/memory/unsafe_shared_memory_region.cc",
-        "base/memory/weak_ptr.cc",
-        "base/memory/writable_shared_memory_region.cc",
-        "base/message_loop/message_pump.cc",
-        "base/message_loop/message_pump_default.cc",
-        "base/message_loop/message_pump_epoll.cc",
-        "base/message_loop/message_pump_libevent.cc",
-        "base/message_loop/watchable_io_message_pump_posix.cc",
-        "base/message_loop/work_id_provider.cc",
-        "base/metrics/bucket_ranges.cc",
-        "base/metrics/crc32.cc",
-        "base/metrics/dummy_histogram.cc",
-        "base/metrics/field_trial.cc",
-        "base/metrics/field_trial_param_associator.cc",
-        "base/metrics/field_trial_params.cc",
-        "base/metrics/histogram.cc",
-        "base/metrics/histogram_base.cc",
-        "base/metrics/histogram_delta_serialization.cc",
-        "base/metrics/histogram_functions.cc",
-        "base/metrics/histogram_samples.cc",
-        "base/metrics/histogram_snapshot_manager.cc",
-        "base/metrics/metrics_hashes.cc",
-        "base/metrics/persistent_histogram_allocator.cc",
-        "base/metrics/persistent_histogram_storage.cc",
-        "base/metrics/persistent_memory_allocator.cc",
-        "base/metrics/persistent_sample_map.cc",
-        "base/metrics/ranges_manager.cc",
-        "base/metrics/sample_map.cc",
-        "base/metrics/sample_vector.cc",
-        "base/metrics/single_sample_metrics.cc",
-        "base/metrics/sparse_histogram.cc",
-        "base/metrics/statistics_recorder.cc",
-        "base/metrics/user_metrics.cc",
-        "base/native_library.cc",
-        "base/native_library_posix.cc",
-        "base/observer_list_internal.cc",
-        "base/observer_list_threadsafe.cc",
-        "base/observer_list_types.cc",
-        "base/one_shot_event.cc",
-        "base/path_service.cc",
-        "base/pending_task.cc",
-        "base/pickle.cc",
-        "base/posix/can_lower_nice_to.cc",
-        "base/posix/file_descriptor_shuffle.cc",
-        "base/posix/global_descriptors.cc",
-        "base/posix/safe_strerror.cc",
-        "base/posix/unix_domain_socket.cc",
-        "base/power_monitor/battery_level_provider.cc",
-        "base/power_monitor/battery_state_sampler.cc",
-        "base/power_monitor/moving_average.cc",
-        "base/power_monitor/power_monitor.cc",
-        "base/power_monitor/power_monitor_device_source.cc",
-        "base/power_monitor/power_monitor_features.cc",
-        "base/power_monitor/power_monitor_source.cc",
-        "base/power_monitor/sampling_event_source.cc",
-        "base/power_monitor/timer_sampling_event_source.cc",
-        "base/process/environment_internal.cc",
-        "base/process/internal_linux.cc",
-        "base/process/kill.cc",
-        "base/process/kill_posix.cc",
-        "base/process/launch.cc",
-        "base/process/launch_posix.cc",
-        "base/process/memory.cc",
-        "base/process/memory_linux.cc",
-        "base/process/process_handle.cc",
-        "base/process/process_handle_linux.cc",
-        "base/process/process_handle_posix.cc",
-        "base/process/process_iterator.cc",
-        "base/process/process_iterator_linux.cc",
-        "base/process/process_metrics.cc",
-        "base/process/process_metrics_linux.cc",
-        "base/process/process_metrics_posix.cc",
-        "base/process/process_posix.cc",
-        "base/profiler/arm_cfi_table.cc",
-        "base/profiler/frame.cc",
-        "base/profiler/metadata_recorder.cc",
-        "base/profiler/module_cache.cc",
-        "base/profiler/module_cache_posix.cc",
-        "base/profiler/sample_metadata.cc",
-        "base/profiler/sampling_profiler_thread_token.cc",
-        "base/profiler/stack_base_address_posix.cc",
-        "base/profiler/stack_buffer.cc",
-        "base/profiler/stack_copier.cc",
-        "base/profiler/stack_copier_signal.cc",
-        "base/profiler/stack_copier_suspend.cc",
-        "base/profiler/stack_sampler.cc",
-        "base/profiler/stack_sampler_impl.cc",
-        "base/profiler/stack_sampling_profiler.cc",
-        "base/profiler/thread_delegate_posix.cc",
-        "base/profiler/unwinder.cc",
-        "base/rand_util.cc",
-        "base/rand_util_posix.cc",
-        "base/run_loop.cc",
-        "base/sampling_heap_profiler/lock_free_address_hash_set.cc",
-        "base/sampling_heap_profiler/poisson_allocation_sampler.cc",
-        "base/sampling_heap_profiler/sampling_heap_profiler.cc",
-        "base/scoped_add_feature_flags.cc",
-        "base/scoped_environment_variable_override.cc",
-        "base/scoped_native_library.cc",
-        "base/sequence_checker.cc",
-        "base/sequence_checker_impl.cc",
-        "base/sequence_token.cc",
-        "base/strings/abseil_string_conversions.cc",
-        "base/strings/abseil_string_number_conversions.cc",
-        "base/strings/escape.cc",
-        "base/strings/latin1_string_conversions.cc",
-        "base/strings/pattern.cc",
-        "base/strings/safe_sprintf.cc",
-        "base/strings/strcat.cc",
-        "base/strings/string_number_conversions.cc",
-        "base/strings/string_piece.cc",
-        "base/strings/string_split.cc",
-        "base/strings/string_util.cc",
-        "base/strings/string_util_constants.cc",
-        "base/strings/stringprintf.cc",
-        "base/strings/sys_string_conversions_posix.cc",
-        "base/strings/utf_offset_string_conversions.cc",
-        "base/strings/utf_string_conversion_utils.cc",
-        "base/strings/utf_string_conversions.cc",
-        "base/substring_set_matcher/matcher_string_pattern.cc",
-        "base/substring_set_matcher/substring_set_matcher.cc",
-        "base/supports_user_data.cc",
-        "base/sync_socket.cc",
-        "base/sync_socket_posix.cc",
-        "base/synchronization/atomic_flag.cc",
-        "base/synchronization/condition_variable_posix.cc",
-        "base/synchronization/lock.cc",
-        "base/synchronization/lock_impl_posix.cc",
-        "base/synchronization/waitable_event_posix.cc",
-        "base/synchronization/waitable_event_watcher_posix.cc",
-        "base/syslog_logging.cc",
-        "base/system/sys_info.cc",
-        "base/system/sys_info_linux.cc",
-        "base/system/sys_info_posix.cc",
-        "base/system/system_monitor.cc",
-        "base/task/cancelable_task_tracker.cc",
-        "base/task/common/checked_lock_impl.cc",
-        "base/task/common/lazy_now.cc",
-        "base/task/common/operations_controller.cc",
-        "base/task/common/scoped_defer_task_posting.cc",
-        "base/task/common/task_annotator.cc",
-        "base/task/current_thread.cc",
-        "base/task/default_delayed_task_handle_delegate.cc",
-        "base/task/deferred_sequenced_task_runner.cc",
-        "base/task/delayed_task_handle.cc",
-        "base/task/lazy_thread_pool_task_runner.cc",
-        "base/task/post_job.cc",
-        "base/task/scoped_set_task_priority_for_current_thread.cc",
-        "base/task/sequence_manager/associated_thread_id.cc",
-        "base/task/sequence_manager/atomic_flag_set.cc",
-        "base/task/sequence_manager/delayed_task_handle_delegate.cc",
-        "base/task/sequence_manager/enqueue_order_generator.cc",
-        "base/task/sequence_manager/fence.cc",
-        "base/task/sequence_manager/hierarchical_timing_wheel.cc",
-        "base/task/sequence_manager/sequence_manager.cc",
-        "base/task/sequence_manager/sequence_manager_impl.cc",
-        "base/task/sequence_manager/sequenced_task_source.cc",
-        "base/task/sequence_manager/task_order.cc",
-        "base/task/sequence_manager/task_queue.cc",
-        "base/task/sequence_manager/task_queue_impl.cc",
-        "base/task/sequence_manager/task_queue_selector.cc",
-        "base/task/sequence_manager/tasks.cc",
-        "base/task/sequence_manager/thread_controller.cc",
-        "base/task/sequence_manager/thread_controller_impl.cc",
-        "base/task/sequence_manager/thread_controller_power_monitor.cc",
-        "base/task/sequence_manager/thread_controller_with_message_pump_impl.cc",
-        "base/task/sequence_manager/time_domain.cc",
-        "base/task/sequence_manager/timing_wheel.cc",
-        "base/task/sequence_manager/wake_up_queue.cc",
-        "base/task/sequence_manager/work_deduplicator.cc",
-        "base/task/sequence_manager/work_queue.cc",
-        "base/task/sequence_manager/work_queue_sets.cc",
-        "base/task/sequenced_task_runner.cc",
-        "base/task/simple_task_executor.cc",
-        "base/task/single_thread_task_executor.cc",
-        "base/task/single_thread_task_runner.cc",
-        "base/task/task_executor.cc",
-        "base/task/task_features.cc",
-        "base/task/task_runner.cc",
-        "base/task/task_traits.cc",
-        "base/task/thread_pool.cc",
-        "base/task/thread_pool/delayed_priority_queue.cc",
-        "base/task/thread_pool/delayed_task_manager.cc",
-        "base/task/thread_pool/environment_config.cc",
-        "base/task/thread_pool/initialization_util.cc",
-        "base/task/thread_pool/job_task_source.cc",
-        "base/task/thread_pool/pooled_parallel_task_runner.cc",
-        "base/task/thread_pool/pooled_sequenced_task_runner.cc",
-        "base/task/thread_pool/pooled_single_thread_task_runner_manager.cc",
-        "base/task/thread_pool/pooled_task_runner_delegate.cc",
-        "base/task/thread_pool/priority_queue.cc",
-        "base/task/thread_pool/sequence.cc",
-        "base/task/thread_pool/service_thread.cc",
-        "base/task/thread_pool/task.cc",
-        "base/task/thread_pool/task_source.cc",
-        "base/task/thread_pool/task_source_sort_key.cc",
-        "base/task/thread_pool/task_tracker.cc",
-        "base/task/thread_pool/thread_group.cc",
-        "base/task/thread_pool/thread_group_impl.cc",
-        "base/task/thread_pool/thread_group_native.cc",
-        "base/task/thread_pool/thread_pool_impl.cc",
-        "base/task/thread_pool/thread_pool_instance.cc",
-        "base/task/thread_pool/worker_thread.cc",
-        "base/task/thread_pool/worker_thread_stack.cc",
-        "base/third_party/cityhash/city.cc",
-        "base/third_party/cityhash_v103/src/city_v103.cc",
-        "base/third_party/nspr/prtime.cc",
-        "base/third_party/superfasthash/superfasthash.c",
-        "base/threading/hang_watcher.cc",
-        "base/threading/platform_thread.cc",
-        "base/threading/platform_thread_internal_posix.cc",
-        "base/threading/platform_thread_posix.cc",
-        "base/threading/platform_thread_ref.cc",
-        "base/threading/post_task_and_reply_impl.cc",
-        "base/threading/scoped_blocking_call.cc",
-        "base/threading/scoped_blocking_call_internal.cc",
-        "base/threading/scoped_thread_priority.cc",
-        "base/threading/sequence_local_storage_map.cc",
-        "base/threading/sequence_local_storage_slot.cc",
-        "base/threading/sequenced_task_runner_handle.cc",
-        "base/threading/simple_thread.cc",
-        "base/threading/thread.cc",
-        "base/threading/thread_checker.cc",
-        "base/threading/thread_checker_impl.cc",
-        "base/threading/thread_collision_warner.cc",
-        "base/threading/thread_id_name_manager.cc",
-        "base/threading/thread_local_storage.cc",
-        "base/threading/thread_local_storage_posix.cc",
-        "base/threading/thread_restrictions.cc",
-        "base/threading/thread_task_runner_handle.cc",
-        "base/threading/watchdog.cc",
-        "base/time/clock.cc",
-        "base/time/default_clock.cc",
-        "base/time/default_tick_clock.cc",
-        "base/time/tick_clock.cc",
-        "base/time/time.cc",
-        "base/time/time_conversion_posix.cc",
-        "base/time/time_delta_from_string.cc",
-        "base/time/time_exploded_icu.cc",
-        "base/time/time_exploded_posix.cc",
-        "base/time/time_now_posix.cc",
-        "base/time/time_override.cc",
-        "base/time/time_to_iso8601.cc",
-        "base/timer/elapsed_timer.cc",
-        "base/timer/hi_res_timer_manager_posix.cc",
-        "base/timer/lap_timer.cc",
-        "base/timer/timer.cc",
-        "base/timer/wall_clock_timer.cc",
-        "base/token.cc",
-        "base/trace_event/heap_profiler_allocation_context.cc",
-        "base/trace_event/heap_profiler_allocation_context_tracker.cc",
-        "base/trace_event/memory_allocator_dump_guid.cc",
-        "base/trace_event/trace_event_stub.cc",
-        "base/trace_event/trace_id_helper.cc",
-        "base/unguessable_token.cc",
-        "base/value_iterators.cc",
-        "base/values.cc",
-        "base/version.cc",
-        "base/vlog.cc",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    host_supported: true,
-    generated_headers: [
-        "cronet_aml_base_allocator_buildflags__testing",
-        "cronet_aml_base_anchor_functions_buildflags__testing",
-        "cronet_aml_base_build_date__testing",
-        "cronet_aml_base_cfi_buildflags__testing",
-        "cronet_aml_base_clang_profiling_buildflags__testing",
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_feature_list_buildflags__testing",
-        "cronet_aml_base_ios_cronet_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_base_message_pump_buildflags__testing",
-        "cronet_aml_base_orderfile_buildflags__testing",
-        "cronet_aml_base_parsing_buildflags__testing",
-        "cronet_aml_base_power_monitor_buildflags__testing",
-        "cronet_aml_base_profiler_buildflags__testing",
-        "cronet_aml_base_sanitizer_buildflags__testing",
-        "cronet_aml_base_synchronization_buildflags__testing",
-        "cronet_aml_base_tracing_buildflags__testing",
-        "cronet_aml_build_branding_buildflags__testing",
-        "cronet_aml_build_chromecast_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_build_config_compiler_compiler_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_allocator_buildflags__testing",
-        "cronet_aml_base_anchor_functions_buildflags__testing",
-        "cronet_aml_base_build_date__testing",
-        "cronet_aml_base_cfi_buildflags__testing",
-        "cronet_aml_base_clang_profiling_buildflags__testing",
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_feature_list_buildflags__testing",
-        "cronet_aml_base_ios_cronet_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_base_message_pump_buildflags__testing",
-        "cronet_aml_base_orderfile_buildflags__testing",
-        "cronet_aml_base_parsing_buildflags__testing",
-        "cronet_aml_base_power_monitor_buildflags__testing",
-        "cronet_aml_base_profiler_buildflags__testing",
-        "cronet_aml_base_sanitizer_buildflags__testing",
-        "cronet_aml_base_synchronization_buildflags__testing",
-        "cronet_aml_base_tracing_buildflags__testing",
-        "cronet_aml_build_branding_buildflags__testing",
-        "cronet_aml_build_chromecast_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_build_config_compiler_compiler_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DBASE_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-    ],
-    target: {
-        android: {
-            shared_libs: [
-                "libandroid",
-                "liblog",
-            ],
-        },
-        android_arm: {
-            srcs: [
-                "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
-                "base/android/android_hardware_buffer_compat.cc",
-                "base/android/android_image_reader_compat.cc",
-                "base/android/apk_assets.cc",
-                "base/android/application_status_listener.cc",
-                "base/android/base_feature_list.cc",
-                "base/android/base_features.cc",
-                "base/android/base_jni_onload.cc",
-                "base/android/build_info.cc",
-                "base/android/bundle_utils.cc",
-                "base/android/callback_android.cc",
-                "base/android/child_process_service.cc",
-                "base/android/command_line_android.cc",
-                "base/android/content_uri_utils.cc",
-                "base/android/cpu_features.cc",
-                "base/android/early_trace_event_binding.cc",
-                "base/android/event_log.cc",
-                "base/android/feature_list_jni.cc",
-                "base/android/features_jni.cc",
-                "base/android/field_trial_list.cc",
-                "base/android/important_file_writer_android.cc",
-                "base/android/int_string_callback.cc",
-                "base/android/jank_metric_uma_recorder.cc",
-                "base/android/java_exception_reporter.cc",
-                "base/android/java_handler_thread.cc",
-                "base/android/java_heap_dump_generator.cc",
-                "base/android/java_runtime.cc",
-                "base/android/jni_android.cc",
-                "base/android/jni_array.cc",
-                "base/android/jni_registrar.cc",
-                "base/android/jni_string.cc",
-                "base/android/jni_utils.cc",
-                "base/android/jni_weak_ref.cc",
-                "base/android/library_loader/anchor_functions.cc",
-                "base/android/library_loader/library_loader_hooks.cc",
-                "base/android/library_loader/library_prefetcher.cc",
-                "base/android/library_loader/library_prefetcher_hooks.cc",
-                "base/android/locale_utils.cc",
-                "base/android/memory_pressure_listener_android.cc",
-                "base/android/native_uma_recorder.cc",
-                "base/android/path_service_android.cc",
-                "base/android/path_utils.cc",
-                "base/android/radio_utils.cc",
-                "base/android/reached_addresses_bitset.cc",
-                "base/android/reached_code_profiler.cc",
-                "base/android/remove_stale_data.cc",
-                "base/android/scoped_hardware_buffer_fence_sync.cc",
-                "base/android/scoped_hardware_buffer_handle.cc",
-                "base/android/scoped_java_ref.cc",
-                "base/android/statistics_recorder_android.cc",
-                "base/android/sys_utils.cc",
-                "base/android/task_scheduler/post_task_android.cc",
-                "base/android/task_scheduler/task_runner_android.cc",
-                "base/android/thread_instruction_count.cc",
-                "base/android/timezone_utils.cc",
-                "base/android/trace_event_binding.cc",
-                "base/android/unguessable_token_android.cc",
-                "base/base_paths_android.cc",
-                "base/debug/stack_trace_android.cc",
-                "base/files/file_util_android.cc",
-                "base/files/scoped_file_android.cc",
-                "base/memory/platform_shared_memory_mapper_android.cc",
-                "base/memory/platform_shared_memory_region_android.cc",
-                "base/message_loop/message_pump_android.cc",
-                "base/os_compat_android.cc",
-                "base/power_monitor/power_monitor_device_source_android.cc",
-                "base/process/process_android.cc",
-                "base/profiler/chrome_unwind_info_android.cc",
-                "base/profiler/chrome_unwinder_android.cc",
-                "base/profiler/chrome_unwinder_android_v2.cc",
-                "base/profiler/stack_sampler_android.cc",
-                "base/system/sys_info_android.cc",
-                "base/threading/platform_thread_android.cc",
-                "base/time/time_android.cc",
-                "base/trace_event/cfi_backtrace_android.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-            generated_headers: [
-                "cronet_aml_base_android_runtime_jni_headers__testing",
-                "cronet_aml_base_base_jni_headers__testing",
-                "cronet_aml_base_debugging_buildflags__testing",
-                "cronet_aml_base_logging_buildflags__testing",
-                "cronet_aml_build_chromeos_buildflags__testing",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
-                "base/android/android_hardware_buffer_compat.cc",
-                "base/android/android_image_reader_compat.cc",
-                "base/android/apk_assets.cc",
-                "base/android/application_status_listener.cc",
-                "base/android/base_feature_list.cc",
-                "base/android/base_features.cc",
-                "base/android/base_jni_onload.cc",
-                "base/android/build_info.cc",
-                "base/android/bundle_utils.cc",
-                "base/android/callback_android.cc",
-                "base/android/child_process_service.cc",
-                "base/android/command_line_android.cc",
-                "base/android/content_uri_utils.cc",
-                "base/android/cpu_features.cc",
-                "base/android/early_trace_event_binding.cc",
-                "base/android/event_log.cc",
-                "base/android/feature_list_jni.cc",
-                "base/android/features_jni.cc",
-                "base/android/field_trial_list.cc",
-                "base/android/important_file_writer_android.cc",
-                "base/android/int_string_callback.cc",
-                "base/android/jank_metric_uma_recorder.cc",
-                "base/android/java_exception_reporter.cc",
-                "base/android/java_handler_thread.cc",
-                "base/android/java_heap_dump_generator.cc",
-                "base/android/java_runtime.cc",
-                "base/android/jni_android.cc",
-                "base/android/jni_array.cc",
-                "base/android/jni_registrar.cc",
-                "base/android/jni_string.cc",
-                "base/android/jni_utils.cc",
-                "base/android/jni_weak_ref.cc",
-                "base/android/library_loader/anchor_functions.cc",
-                "base/android/library_loader/library_loader_hooks.cc",
-                "base/android/library_loader/library_prefetcher.cc",
-                "base/android/library_loader/library_prefetcher_hooks.cc",
-                "base/android/locale_utils.cc",
-                "base/android/memory_pressure_listener_android.cc",
-                "base/android/native_uma_recorder.cc",
-                "base/android/path_service_android.cc",
-                "base/android/path_utils.cc",
-                "base/android/radio_utils.cc",
-                "base/android/reached_addresses_bitset.cc",
-                "base/android/reached_code_profiler.cc",
-                "base/android/remove_stale_data.cc",
-                "base/android/scoped_hardware_buffer_fence_sync.cc",
-                "base/android/scoped_hardware_buffer_handle.cc",
-                "base/android/scoped_java_ref.cc",
-                "base/android/statistics_recorder_android.cc",
-                "base/android/sys_utils.cc",
-                "base/android/task_scheduler/post_task_android.cc",
-                "base/android/task_scheduler/task_runner_android.cc",
-                "base/android/thread_instruction_count.cc",
-                "base/android/timezone_utils.cc",
-                "base/android/trace_event_binding.cc",
-                "base/android/unguessable_token_android.cc",
-                "base/base_paths_android.cc",
-                "base/debug/stack_trace_android.cc",
-                "base/files/file_util_android.cc",
-                "base/files/scoped_file_android.cc",
-                "base/memory/platform_shared_memory_mapper_android.cc",
-                "base/memory/platform_shared_memory_region_android.cc",
-                "base/message_loop/message_pump_android.cc",
-                "base/os_compat_android.cc",
-                "base/power_monitor/power_monitor_device_source_android.cc",
-                "base/process/process_android.cc",
-                "base/profiler/stack_sampler_android.cc",
-                "base/system/sys_info_android.cc",
-                "base/threading/platform_thread_android.cc",
-                "base/time/time_android.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-            generated_headers: [
-                "cronet_aml_base_android_runtime_jni_headers__testing",
-                "cronet_aml_base_base_jni_headers__testing",
-                "cronet_aml_base_debugging_buildflags__testing",
-                "cronet_aml_base_logging_buildflags__testing",
-                "cronet_aml_build_chromeos_buildflags__testing",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
-                "base/android/android_hardware_buffer_compat.cc",
-                "base/android/android_image_reader_compat.cc",
-                "base/android/apk_assets.cc",
-                "base/android/application_status_listener.cc",
-                "base/android/base_feature_list.cc",
-                "base/android/base_features.cc",
-                "base/android/base_jni_onload.cc",
-                "base/android/build_info.cc",
-                "base/android/bundle_utils.cc",
-                "base/android/callback_android.cc",
-                "base/android/child_process_service.cc",
-                "base/android/command_line_android.cc",
-                "base/android/content_uri_utils.cc",
-                "base/android/cpu_features.cc",
-                "base/android/early_trace_event_binding.cc",
-                "base/android/event_log.cc",
-                "base/android/feature_list_jni.cc",
-                "base/android/features_jni.cc",
-                "base/android/field_trial_list.cc",
-                "base/android/important_file_writer_android.cc",
-                "base/android/int_string_callback.cc",
-                "base/android/jank_metric_uma_recorder.cc",
-                "base/android/java_exception_reporter.cc",
-                "base/android/java_handler_thread.cc",
-                "base/android/java_heap_dump_generator.cc",
-                "base/android/java_runtime.cc",
-                "base/android/jni_android.cc",
-                "base/android/jni_array.cc",
-                "base/android/jni_registrar.cc",
-                "base/android/jni_string.cc",
-                "base/android/jni_utils.cc",
-                "base/android/jni_weak_ref.cc",
-                "base/android/library_loader/anchor_functions.cc",
-                "base/android/library_loader/library_loader_hooks.cc",
-                "base/android/library_loader/library_prefetcher.cc",
-                "base/android/library_loader/library_prefetcher_hooks.cc",
-                "base/android/locale_utils.cc",
-                "base/android/memory_pressure_listener_android.cc",
-                "base/android/native_uma_recorder.cc",
-                "base/android/path_service_android.cc",
-                "base/android/path_utils.cc",
-                "base/android/radio_utils.cc",
-                "base/android/reached_addresses_bitset.cc",
-                "base/android/reached_code_profiler_stub.cc",
-                "base/android/remove_stale_data.cc",
-                "base/android/scoped_hardware_buffer_fence_sync.cc",
-                "base/android/scoped_hardware_buffer_handle.cc",
-                "base/android/scoped_java_ref.cc",
-                "base/android/statistics_recorder_android.cc",
-                "base/android/sys_utils.cc",
-                "base/android/task_scheduler/post_task_android.cc",
-                "base/android/task_scheduler/task_runner_android.cc",
-                "base/android/thread_instruction_count.cc",
-                "base/android/timezone_utils.cc",
-                "base/android/trace_event_binding.cc",
-                "base/android/unguessable_token_android.cc",
-                "base/base_paths_android.cc",
-                "base/debug/stack_trace_android.cc",
-                "base/files/file_util_android.cc",
-                "base/files/scoped_file_android.cc",
-                "base/memory/platform_shared_memory_mapper_android.cc",
-                "base/memory/platform_shared_memory_region_android.cc",
-                "base/message_loop/message_pump_android.cc",
-                "base/os_compat_android.cc",
-                "base/power_monitor/power_monitor_device_source_android.cc",
-                "base/process/process_android.cc",
-                "base/profiler/stack_sampler_android.cc",
-                "base/system/sys_info_android.cc",
-                "base/threading/platform_thread_android.cc",
-                "base/time/time_android.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-msse3",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-            generated_headers: [
-                "cronet_aml_base_android_runtime_jni_headers__testing",
-                "cronet_aml_base_base_jni_headers__testing",
-                "cronet_aml_base_debugging_buildflags__testing",
-                "cronet_aml_base_logging_buildflags__testing",
-                "cronet_aml_build_chromeos_buildflags__testing",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc",
-                "base/android/android_hardware_buffer_compat.cc",
-                "base/android/android_image_reader_compat.cc",
-                "base/android/apk_assets.cc",
-                "base/android/application_status_listener.cc",
-                "base/android/base_feature_list.cc",
-                "base/android/base_features.cc",
-                "base/android/base_jni_onload.cc",
-                "base/android/build_info.cc",
-                "base/android/bundle_utils.cc",
-                "base/android/callback_android.cc",
-                "base/android/child_process_service.cc",
-                "base/android/command_line_android.cc",
-                "base/android/content_uri_utils.cc",
-                "base/android/cpu_features.cc",
-                "base/android/early_trace_event_binding.cc",
-                "base/android/event_log.cc",
-                "base/android/feature_list_jni.cc",
-                "base/android/features_jni.cc",
-                "base/android/field_trial_list.cc",
-                "base/android/important_file_writer_android.cc",
-                "base/android/int_string_callback.cc",
-                "base/android/jank_metric_uma_recorder.cc",
-                "base/android/java_exception_reporter.cc",
-                "base/android/java_handler_thread.cc",
-                "base/android/java_heap_dump_generator.cc",
-                "base/android/java_runtime.cc",
-                "base/android/jni_android.cc",
-                "base/android/jni_array.cc",
-                "base/android/jni_registrar.cc",
-                "base/android/jni_string.cc",
-                "base/android/jni_utils.cc",
-                "base/android/jni_weak_ref.cc",
-                "base/android/library_loader/anchor_functions.cc",
-                "base/android/library_loader/library_loader_hooks.cc",
-                "base/android/library_loader/library_prefetcher.cc",
-                "base/android/library_loader/library_prefetcher_hooks.cc",
-                "base/android/locale_utils.cc",
-                "base/android/memory_pressure_listener_android.cc",
-                "base/android/native_uma_recorder.cc",
-                "base/android/path_service_android.cc",
-                "base/android/path_utils.cc",
-                "base/android/radio_utils.cc",
-                "base/android/reached_addresses_bitset.cc",
-                "base/android/reached_code_profiler_stub.cc",
-                "base/android/remove_stale_data.cc",
-                "base/android/scoped_hardware_buffer_fence_sync.cc",
-                "base/android/scoped_hardware_buffer_handle.cc",
-                "base/android/scoped_java_ref.cc",
-                "base/android/statistics_recorder_android.cc",
-                "base/android/sys_utils.cc",
-                "base/android/task_scheduler/post_task_android.cc",
-                "base/android/task_scheduler/task_runner_android.cc",
-                "base/android/thread_instruction_count.cc",
-                "base/android/timezone_utils.cc",
-                "base/android/trace_event_binding.cc",
-                "base/android/unguessable_token_android.cc",
-                "base/base_paths_android.cc",
-                "base/debug/stack_trace_android.cc",
-                "base/files/file_util_android.cc",
-                "base/files/scoped_file_android.cc",
-                "base/memory/platform_shared_memory_mapper_android.cc",
-                "base/memory/platform_shared_memory_region_android.cc",
-                "base/message_loop/message_pump_android.cc",
-                "base/os_compat_android.cc",
-                "base/power_monitor/power_monitor_device_source_android.cc",
-                "base/process/process_android.cc",
-                "base/profiler/stack_sampler_android.cc",
-                "base/system/sys_info_android.cc",
-                "base/threading/platform_thread_android.cc",
-                "base/time/time_android.cc",
-            ],
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            local_include_dirs: [
-                "third_party/android_ndk/sources/android/cpufeatures/",
-            ],
-            generated_headers: [
-                "cronet_aml_base_android_runtime_jni_headers__testing",
-                "cronet_aml_base_base_jni_headers__testing",
-                "cronet_aml_base_debugging_buildflags__testing",
-                "cronet_aml_base_logging_buildflags__testing",
-                "cronet_aml_build_chromeos_buildflags__testing",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        host: {
-            srcs: [
-                "base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_glibc.cc",
-                "base/base_paths_posix.cc",
-                "base/debug/stack_trace_posix.cc",
-                "base/files/file_util_linux.cc",
-                "base/files/scoped_file_linux.cc",
-                "base/memory/platform_shared_memory_mapper_posix.cc",
-                "base/memory/platform_shared_memory_region_posix.cc",
-                "base/power_monitor/power_monitor_device_source_stub.cc",
-                "base/process/process_linux.cc",
-                "base/profiler/stack_sampler_posix.cc",
-                "base/stack_canary_linux.cc",
-                "base/threading/platform_thread_linux.cc",
-            ],
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //base:base_android_java_enums_srcjar
-java_genrule {
-    name: "cronet_aml_base_base_android_java_enums_srcjar",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location base/android/application_status_listener.h) " +
-         "$(location base/android/child_process_binding_types.h) " +
-         "$(location base/android/library_loader/library_loader_hooks.h) " +
-         "$(location base/android/linker/modern_linker_jni.h) " +
-         "$(location base/android/task_scheduler/task_runner_android.h) " +
-         "$(location base/memory/memory_pressure_listener.h) " +
-         "$(location base/metrics/histogram_base.h) " +
-         "$(location base/task/task_traits.h)",
-    out: [
-        "base/base_android_java_enums_srcjar.srcjar",
-    ],
-    tool_files: [
-        "base/android/application_status_listener.h",
-        "base/android/child_process_binding_types.h",
-        "base/android/library_loader/library_loader_hooks.h",
-        "base/android/linker/modern_linker_jni.h",
-        "base/android/task_scheduler/task_runner_android.h",
-        "base/memory/memory_pressure_listener.h",
-        "base/metrics/histogram_base.h",
-        "base/task/task_traits.h",
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-    ],
-}
-
-// GN: //base:base_jni_headers
-cc_genrule {
-    name: "cronet_aml_base_base_jni_headers",
-    srcs: [
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/base/base_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "ApkAssets_jni.h " +
-         "--output_name " +
-         "ApplicationStatus_jni.h " +
-         "--output_name " +
-         "BaseFeatureList_jni.h " +
-         "--output_name " +
-         "BuildInfo_jni.h " +
-         "--output_name " +
-         "BundleUtils_jni.h " +
-         "--output_name " +
-         "Callback_jni.h " +
-         "--output_name " +
-         "CommandLine_jni.h " +
-         "--output_name " +
-         "ContentUriUtils_jni.h " +
-         "--output_name " +
-         "CpuFeatures_jni.h " +
-         "--output_name " +
-         "EarlyTraceEvent_jni.h " +
-         "--output_name " +
-         "EventLog_jni.h " +
-         "--output_name " +
-         "FeatureList_jni.h " +
-         "--output_name " +
-         "Features_jni.h " +
-         "--output_name " +
-         "FieldTrialList_jni.h " +
-         "--output_name " +
-         "FileUtils_jni.h " +
-         "--output_name " +
-         "ImportantFileWriterAndroid_jni.h " +
-         "--output_name " +
-         "IntStringCallback_jni.h " +
-         "--output_name " +
-         "JNIUtils_jni.h " +
-         "--output_name " +
-         "JavaExceptionReporter_jni.h " +
-         "--output_name " +
-         "JavaHandlerThread_jni.h " +
-         "--output_name " +
-         "LocaleUtils_jni.h " +
-         "--output_name " +
-         "MemoryPressureListener_jni.h " +
-         "--output_name " +
-         "PathService_jni.h " +
-         "--output_name " +
-         "PathUtils_jni.h " +
-         "--output_name " +
-         "PiiElider_jni.h " +
-         "--output_name " +
-         "PowerMonitor_jni.h " +
-         "--output_name " +
-         "RadioUtils_jni.h " +
-         "--output_name " +
-         "SysUtils_jni.h " +
-         "--output_name " +
-         "ThreadUtils_jni.h " +
-         "--output_name " +
-         "TimezoneUtils_jni.h " +
-         "--output_name " +
-         "TraceEvent_jni.h " +
-         "--output_name " +
-         "UnguessableToken_jni.h " +
-         "--output_name " +
-         "JankMetricUMARecorder_jni.h " +
-         "--output_name " +
-         "LibraryLoader_jni.h " +
-         "--output_name " +
-         "LibraryPrefetcher_jni.h " +
-         "--output_name " +
-         "JavaHeapDumpGenerator_jni.h " +
-         "--output_name " +
-         "NativeUmaRecorder_jni.h " +
-         "--output_name " +
-         "StatisticsRecorderAndroid_jni.h " +
-         "--output_name " +
-         "ChildProcessService_jni.h " +
-         "--output_name " +
-         "PostTask_jni.h " +
-         "--output_name " +
-         "TaskRunnerImpl_jni.h " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ApkAssets.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ApplicationStatus.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/BaseFeatureList.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/BuildInfo.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/BundleUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/Callback.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/CommandLine.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ContentUriUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/CpuFeatures.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/EarlyTraceEvent.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/EventLog.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/FeatureList.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/Features.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/FieldTrialList.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/FileUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/IntStringCallback.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/JNIUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/JavaExceptionReporter.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/JavaHandlerThread.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/LocaleUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/MemoryPressureListener.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PathService.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PathUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PiiElider.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PowerMonitor.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/RadioUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/SysUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ThreadUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/TimezoneUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/TraceEvent.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/UnguessableToken.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/task/PostTask.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java) " +
-         "--package_prefix " +
-         "android.net.http.internal",
-    out: [
-        "base/base_jni_headers/ApkAssets_jni.h",
-        "base/base_jni_headers/ApplicationStatus_jni.h",
-        "base/base_jni_headers/BaseFeatureList_jni.h",
-        "base/base_jni_headers/BuildInfo_jni.h",
-        "base/base_jni_headers/BundleUtils_jni.h",
-        "base/base_jni_headers/Callback_jni.h",
-        "base/base_jni_headers/ChildProcessService_jni.h",
-        "base/base_jni_headers/CommandLine_jni.h",
-        "base/base_jni_headers/ContentUriUtils_jni.h",
-        "base/base_jni_headers/CpuFeatures_jni.h",
-        "base/base_jni_headers/EarlyTraceEvent_jni.h",
-        "base/base_jni_headers/EventLog_jni.h",
-        "base/base_jni_headers/FeatureList_jni.h",
-        "base/base_jni_headers/Features_jni.h",
-        "base/base_jni_headers/FieldTrialList_jni.h",
-        "base/base_jni_headers/FileUtils_jni.h",
-        "base/base_jni_headers/ImportantFileWriterAndroid_jni.h",
-        "base/base_jni_headers/IntStringCallback_jni.h",
-        "base/base_jni_headers/JNIUtils_jni.h",
-        "base/base_jni_headers/JankMetricUMARecorder_jni.h",
-        "base/base_jni_headers/JavaExceptionReporter_jni.h",
-        "base/base_jni_headers/JavaHandlerThread_jni.h",
-        "base/base_jni_headers/JavaHeapDumpGenerator_jni.h",
-        "base/base_jni_headers/LibraryLoader_jni.h",
-        "base/base_jni_headers/LibraryPrefetcher_jni.h",
-        "base/base_jni_headers/LocaleUtils_jni.h",
-        "base/base_jni_headers/MemoryPressureListener_jni.h",
-        "base/base_jni_headers/NativeUmaRecorder_jni.h",
-        "base/base_jni_headers/PathService_jni.h",
-        "base/base_jni_headers/PathUtils_jni.h",
-        "base/base_jni_headers/PiiElider_jni.h",
-        "base/base_jni_headers/PostTask_jni.h",
-        "base/base_jni_headers/PowerMonitor_jni.h",
-        "base/base_jni_headers/RadioUtils_jni.h",
-        "base/base_jni_headers/StatisticsRecorderAndroid_jni.h",
-        "base/base_jni_headers/SysUtils_jni.h",
-        "base/base_jni_headers/TaskRunnerImpl_jni.h",
-        "base/base_jni_headers/ThreadUtils_jni.h",
-        "base/base_jni_headers/TimezoneUtils_jni.h",
-        "base/base_jni_headers/TraceEvent_jni.h",
-        "base/base_jni_headers/UnguessableToken_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:base_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_base_base_jni_headers__testing",
-    srcs: [
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/base/base_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "ApkAssets_jni.h " +
-         "--output_name " +
-         "ApplicationStatus_jni.h " +
-         "--output_name " +
-         "BaseFeatureList_jni.h " +
-         "--output_name " +
-         "BuildInfo_jni.h " +
-         "--output_name " +
-         "BundleUtils_jni.h " +
-         "--output_name " +
-         "Callback_jni.h " +
-         "--output_name " +
-         "CommandLine_jni.h " +
-         "--output_name " +
-         "ContentUriUtils_jni.h " +
-         "--output_name " +
-         "CpuFeatures_jni.h " +
-         "--output_name " +
-         "EarlyTraceEvent_jni.h " +
-         "--output_name " +
-         "EventLog_jni.h " +
-         "--output_name " +
-         "FeatureList_jni.h " +
-         "--output_name " +
-         "Features_jni.h " +
-         "--output_name " +
-         "FieldTrialList_jni.h " +
-         "--output_name " +
-         "FileUtils_jni.h " +
-         "--output_name " +
-         "ImportantFileWriterAndroid_jni.h " +
-         "--output_name " +
-         "IntStringCallback_jni.h " +
-         "--output_name " +
-         "JNIUtils_jni.h " +
-         "--output_name " +
-         "JavaExceptionReporter_jni.h " +
-         "--output_name " +
-         "JavaHandlerThread_jni.h " +
-         "--output_name " +
-         "LocaleUtils_jni.h " +
-         "--output_name " +
-         "MemoryPressureListener_jni.h " +
-         "--output_name " +
-         "PathService_jni.h " +
-         "--output_name " +
-         "PathUtils_jni.h " +
-         "--output_name " +
-         "PiiElider_jni.h " +
-         "--output_name " +
-         "PowerMonitor_jni.h " +
-         "--output_name " +
-         "RadioUtils_jni.h " +
-         "--output_name " +
-         "SysUtils_jni.h " +
-         "--output_name " +
-         "ThreadUtils_jni.h " +
-         "--output_name " +
-         "TimezoneUtils_jni.h " +
-         "--output_name " +
-         "TraceEvent_jni.h " +
-         "--output_name " +
-         "UnguessableToken_jni.h " +
-         "--output_name " +
-         "JankMetricUMARecorder_jni.h " +
-         "--output_name " +
-         "LibraryLoader_jni.h " +
-         "--output_name " +
-         "LibraryPrefetcher_jni.h " +
-         "--output_name " +
-         "JavaHeapDumpGenerator_jni.h " +
-         "--output_name " +
-         "NativeUmaRecorder_jni.h " +
-         "--output_name " +
-         "StatisticsRecorderAndroid_jni.h " +
-         "--output_name " +
-         "ChildProcessService_jni.h " +
-         "--output_name " +
-         "PostTask_jni.h " +
-         "--output_name " +
-         "TaskRunnerImpl_jni.h " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ApkAssets.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ApplicationStatus.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/BaseFeatureList.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/BuildInfo.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/BundleUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/Callback.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/CommandLine.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ContentUriUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/CpuFeatures.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/EarlyTraceEvent.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/EventLog.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/FeatureList.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/Features.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/FieldTrialList.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/FileUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/IntStringCallback.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/JNIUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/JavaExceptionReporter.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/JavaHandlerThread.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/LocaleUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/MemoryPressureListener.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PathService.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PathUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PiiElider.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/PowerMonitor.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/RadioUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/SysUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/ThreadUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/TimezoneUtils.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/TraceEvent.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/UnguessableToken.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/task/PostTask.java) " +
-         "--input_file " +
-         "$(location base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java)",
-    out: [
-        "base/base_jni_headers/ApkAssets_jni.h",
-        "base/base_jni_headers/ApplicationStatus_jni.h",
-        "base/base_jni_headers/BaseFeatureList_jni.h",
-        "base/base_jni_headers/BuildInfo_jni.h",
-        "base/base_jni_headers/BundleUtils_jni.h",
-        "base/base_jni_headers/Callback_jni.h",
-        "base/base_jni_headers/ChildProcessService_jni.h",
-        "base/base_jni_headers/CommandLine_jni.h",
-        "base/base_jni_headers/ContentUriUtils_jni.h",
-        "base/base_jni_headers/CpuFeatures_jni.h",
-        "base/base_jni_headers/EarlyTraceEvent_jni.h",
-        "base/base_jni_headers/EventLog_jni.h",
-        "base/base_jni_headers/FeatureList_jni.h",
-        "base/base_jni_headers/Features_jni.h",
-        "base/base_jni_headers/FieldTrialList_jni.h",
-        "base/base_jni_headers/FileUtils_jni.h",
-        "base/base_jni_headers/ImportantFileWriterAndroid_jni.h",
-        "base/base_jni_headers/IntStringCallback_jni.h",
-        "base/base_jni_headers/JNIUtils_jni.h",
-        "base/base_jni_headers/JankMetricUMARecorder_jni.h",
-        "base/base_jni_headers/JavaExceptionReporter_jni.h",
-        "base/base_jni_headers/JavaHandlerThread_jni.h",
-        "base/base_jni_headers/JavaHeapDumpGenerator_jni.h",
-        "base/base_jni_headers/LibraryLoader_jni.h",
-        "base/base_jni_headers/LibraryPrefetcher_jni.h",
-        "base/base_jni_headers/LocaleUtils_jni.h",
-        "base/base_jni_headers/MemoryPressureListener_jni.h",
-        "base/base_jni_headers/NativeUmaRecorder_jni.h",
-        "base/base_jni_headers/PathService_jni.h",
-        "base/base_jni_headers/PathUtils_jni.h",
-        "base/base_jni_headers/PiiElider_jni.h",
-        "base/base_jni_headers/PostTask_jni.h",
-        "base/base_jni_headers/PowerMonitor_jni.h",
-        "base/base_jni_headers/RadioUtils_jni.h",
-        "base/base_jni_headers/StatisticsRecorderAndroid_jni.h",
-        "base/base_jni_headers/SysUtils_jni.h",
-        "base/base_jni_headers/TaskRunnerImpl_jni.h",
-        "base/base_jni_headers/ThreadUtils_jni.h",
-        "base/base_jni_headers/TimezoneUtils_jni.h",
-        "base/base_jni_headers/TraceEvent_jni.h",
-        "base/base_jni_headers/UnguessableToken_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:base_static
-cc_library_static {
-    name: "cronet_aml_base_base_static",
-    srcs: [
-        "base/base_switches.cc",
-    ],
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base:base_static__testing
-cc_library_static {
-    name: "cronet_aml_base_base_static__testing",
-    srcs: [
-        "base/base_switches.cc",
-    ],
-    host_supported: true,
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //base:build_date
-cc_genrule {
-    name: "cronet_aml_base_build_date",
-    cmd: "$(location build/write_build_date_header.py) $(out) " +
-         "1674644139",
-    out: [
-        "base/generated_build_date.h",
-    ],
-    tool_files: [
-        "build/write_build_date_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:build_date__testing
-cc_genrule {
-    name: "cronet_aml_base_build_date__testing",
-    cmd: "$(location build/write_build_date_header.py) $(out) " +
-         "1674644139",
-    host_supported: true,
-    out: [
-        "base/generated_build_date.h",
-    ],
-    tool_files: [
-        "build/write_build_date_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:cfi_buildflags
-cc_genrule {
-    name: "cronet_aml_base_cfi_buildflags",
-    cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:cfi_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/cfi_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:cfi_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_cfi_buildflags__testing",
-    cmd: "echo '--flags CFI_CAST_CHECK=\"false && false\" CFI_ICALL_CHECK=\"false && false\" CFI_ENFORCEMENT_TRAP=\"false && !false\" CFI_ENFORCEMENT_DIAGNOSTIC=\"false && false && !false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:cfi_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/cfi_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:clang_profiling_buildflags
-cc_genrule {
-    name: "cronet_aml_base_clang_profiling_buildflags",
-    cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:clang_profiling_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/clang_profiling_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:clang_profiling_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_clang_profiling_buildflags__testing",
-    cmd: "echo '--flags CLANG_PROFILING=\"false\" CLANG_PROFILING_INSIDE_SANDBOX=\"false\" USE_CLANG_COVERAGE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:clang_profiling_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/clang_profiling_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:debugging_buildflags
-cc_genrule {
-    name: "cronet_aml_base_debugging_buildflags",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"true\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"true\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    out: [
-        "base/debug/debugging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:debugging_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_debugging_buildflags__testing",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ $$CC_OS != 'android' ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"true\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"false\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"true\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags DCHECK_IS_CONFIGURABLE=\"false\" ENABLE_LOCATION_SOURCE=\"true\" FROM_HERE_USES_LOCATION_BUILTINS=\"true\" ENABLE_PROFILING=\"false\" CAN_UNWIND_WITH_FRAME_POINTERS=\"true\" UNSAFE_DEVELOPER_BUILD=\"false\" CAN_UNWIND_WITH_CFI_TABLE=\"false\" EXCLUDE_UNWIND_TABLES=\"true\" ENABLE_GDBINIT_WARNING=\"false\" ENABLE_LLDBINIT_WARNING=\"false\" EXPENSIVE_DCHECKS_ARE_ON=\"false\" ENABLE_STACK_TRACE_LINE_NUMBERS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:debugging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    host_supported: true,
-    out: [
-        "base/debug/debugging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:feature_list_buildflags
-cc_genrule {
-    name: "cronet_aml_base_feature_list_buildflags",
-    cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:feature_list_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/feature_list_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:feature_list_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_feature_list_buildflags__testing",
-    cmd: "echo '--flags ENABLE_BANNED_BASE_FEATURE_PREFIX=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:feature_list_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/feature_list_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:i18n__testing
-cc_library_static {
-    name: "cronet_aml_base_i18n__testing",
-    srcs: [
-        "base/i18n/base_i18n_switches.cc",
-        "base/i18n/break_iterator.cc",
-        "base/i18n/case_conversion.cc",
-        "base/i18n/char_iterator.cc",
-        "base/i18n/character_encoding.cc",
-        "base/i18n/encoding_detection.cc",
-        "base/i18n/file_util_icu.cc",
-        "base/i18n/i18n_constants.cc",
-        "base/i18n/icu_string_conversions.cc",
-        "base/i18n/icu_util.cc",
-        "base/i18n/message_formatter.cc",
-        "base/i18n/number_formatting.cc",
-        "base/i18n/rtl.cc",
-        "base/i18n/streaming_utf8_validator.cc",
-        "base/i18n/string_compare.cc",
-        "base/i18n/string_search.cc",
-        "base/i18n/time_formatting.cc",
-        "base/i18n/timezone.cc",
-        "base/i18n/utf8_validator_tables.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_build_chromecast_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromecast_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DBASE_I18N_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base:ios_cronet_buildflags
-cc_genrule {
-    name: "cronet_aml_base_ios_cronet_buildflags",
-    cmd: "echo '--flags CRONET_BUILD=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:ios_cronet_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/message_loop/ios_cronet_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:ios_cronet_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_ios_cronet_buildflags__testing",
-    cmd: "echo '--flags CRONET_BUILD=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:ios_cronet_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/message_loop/ios_cronet_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:java_features_srcjar
-java_genrule {
-    name: "cronet_aml_base_java_features_srcjar",
-    srcs: [
-        "base/android/base_features.cc",
-        "base/features.cc",
-        "base/task/task_features.cc",
-    ],
-    cmd: "$(location build/android/gyp/java_cpp_features.py) --srcjar " +
-         "$(out) " +
-         "--template " +
-         "$(location base/android/java/src/org/chromium/base/BaseFeatures.java.tmpl) " +
-         "$(location base/android/base_features.cc) " +
-         "$(location base/features.cc) " +
-         "$(location base/task/task_features.cc)",
-    out: [
-        "base/java_features_srcjar.srcjar",
-    ],
-    tool_files: [
-        "base/android/java/src/org/chromium/base/BaseFeatures.java.tmpl",
-        "build/android/gyp/java_cpp_features.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-    ],
-}
-
-// GN: //base:java_switches_srcjar
-java_genrule {
-    name: "cronet_aml_base_java_switches_srcjar",
-    srcs: [
-        "base/base_switches.cc",
-    ],
-    cmd: "$(location build/android/gyp/java_cpp_strings.py) --srcjar " +
-         "$(out) " +
-         "--template " +
-         "$(location base/android/java/src/org/chromium/base/BaseSwitches.java.tmpl) " +
-         "$(location base/base_switches.cc)",
-    out: [
-        "base/java_switches_srcjar.srcjar",
-    ],
-    tool_files: [
-        "base/android/java/src/org/chromium/base/BaseSwitches.java.tmpl",
-        "build/android/gyp/java_cpp_strings.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-    ],
-}
-
-// GN: //base:logging_buildflags
-cc_genrule {
-    name: "cronet_aml_base_logging_buildflags",
-    cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:logging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/logging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:logging_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_logging_buildflags__testing",
-    cmd: "echo '--flags ENABLE_LOG_ERROR_NOT_REACHED=\"false\" USE_RUNTIME_VLOG=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:logging_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/logging_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:message_pump_buildflags
-cc_genrule {
-    name: "cronet_aml_base_message_pump_buildflags",
-    cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:message_pump_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/message_loop/message_pump_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:message_pump_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_message_pump_buildflags__testing",
-    cmd: "echo '--flags ENABLE_MESSAGE_PUMP_EPOLL=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:message_pump_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/message_loop/message_pump_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:nodebug_assertion
-cc_library_static {
-    name: "cronet_aml_base_nodebug_assertion",
-    srcs: [
-        "base/nodebug_assertion.cc",
-    ],
-    static_libs: [
-        "cronet_aml_base_base_static",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DBASE_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base:nodebug_assertion__testing
-cc_library_static {
-    name: "cronet_aml_base_nodebug_assertion__testing",
-    srcs: [
-        "base/nodebug_assertion.cc",
-    ],
-    static_libs: [
-        "cronet_aml_base_base_static__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DBASE_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //base:orderfile_buildflags
-cc_genrule {
-    name: "cronet_aml_base_orderfile_buildflags",
-    cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:orderfile_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/android/orderfile/orderfile_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:orderfile_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_orderfile_buildflags__testing",
-    cmd: "echo '--flags DEVTOOLS_INSTRUMENTATION_DUMPING=\"false\" ORDERFILE_INSTRUMENTATION=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:orderfile_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/android/orderfile/orderfile_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:parsing_buildflags
-cc_genrule {
-    name: "cronet_aml_base_parsing_buildflags",
-    cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:parsing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/parsing_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:parsing_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_parsing_buildflags__testing",
-    cmd: "echo '--flags BUILD_RUST_JSON_PARSER=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:parsing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/parsing_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:power_monitor_buildflags
-cc_genrule {
-    name: "cronet_aml_base_power_monitor_buildflags",
-    cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:power_monitor_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/power_monitor/power_monitor_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:power_monitor_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_power_monitor_buildflags__testing",
-    cmd: "echo '--flags HAS_BATTERY_LEVEL_PROVIDER_IMPL=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:power_monitor_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/power_monitor/power_monitor_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:profiler_buildflags
-cc_genrule {
-    name: "cronet_aml_base_profiler_buildflags",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"true\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    out: [
-        "base/profiler/profiler_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:profiler_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_profiler_buildflags__testing",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ $$CC_OS != 'android' ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"true\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_ARM_CFI_TABLE=\"false\" IOS_STACK_PROFILER_ENABLED=\"true\" USE_ANDROID_UNWINDER_V2=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:profiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    host_supported: true,
-    out: [
-        "base/profiler/profiler_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:sanitizer_buildflags
-cc_genrule {
-    name: "cronet_aml_base_sanitizer_buildflags",
-    cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:sanitizer_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/sanitizer_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:sanitizer_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_sanitizer_buildflags__testing",
-    cmd: "echo '--flags IS_HWASAN=\"false\" USING_SANITIZER=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:sanitizer_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/sanitizer_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:synchronization_buildflags
-cc_genrule {
-    name: "cronet_aml_base_synchronization_buildflags",
-    cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:synchronization_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/synchronization/synchronization_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:synchronization_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_synchronization_buildflags__testing",
-    cmd: "echo '--flags ENABLE_MUTEX_PRIORITY_INHERITANCE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:synchronization_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "base/synchronization/synchronization_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/test:base_unittests_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_base_test_base_unittests_jni_headers__testing",
-    srcs: [
-        "base/test/android/java/src/org/chromium/base/ContentUriTestUtils.java",
-        "base/test/android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/base/test/base_unittests_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "ContentUriTestUtils_jni.h " +
-         "--output_name " +
-         "JavaHandlerThreadHelpers_jni.h " +
-         "--input_file " +
-         "$(location base/test/android/java/src/org/chromium/base/ContentUriTestUtils.java) " +
-         "--input_file " +
-         "$(location base/test/android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java)",
-    out: [
-        "base/test/base_unittests_jni_headers/ContentUriTestUtils_jni.h",
-        "base/test/base_unittests_jni_headers/JavaHandlerThreadHelpers_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/test:test_config__testing
-cc_library_static {
-    name: "cronet_aml_base_test_test_config__testing",
-    srcs: [
-        "base/test/test_switches.cc",
-        "base/test/test_timeouts.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_base_clang_profiling_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_clang_profiling_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base/test:test_support__testing
-cc_library_static {
-    name: "cronet_aml_base_test_test_support__testing",
-    srcs: [
-        "base/task/sequence_manager/test/fake_task.cc",
-        "base/task/sequence_manager/test/mock_time_domain.cc",
-        "base/task/sequence_manager/test/mock_time_message_pump.cc",
-        "base/task/sequence_manager/test/sequence_manager_for_test.cc",
-        "base/task/sequence_manager/test/test_task_queue.cc",
-        "base/test/android/java_handler_thread_helpers.cc",
-        "base/test/android/url_utils.cc",
-        "base/test/bind.cc",
-        "base/test/copy_only_int.cc",
-        "base/test/gtest_links.cc",
-        "base/test/gtest_util.cc",
-        "base/test/gtest_xml_unittest_result_printer.cc",
-        "base/test/gtest_xml_util.cc",
-        "base/test/icu_test_util.cc",
-        "base/test/launcher/test_launcher.cc",
-        "base/test/launcher/test_launcher_test_utils.cc",
-        "base/test/launcher/test_launcher_tracer.cc",
-        "base/test/launcher/test_result.cc",
-        "base/test/launcher/test_results_tracker.cc",
-        "base/test/launcher/unit_test_launcher.cc",
-        "base/test/metrics/histogram_enum_reader.cc",
-        "base/test/metrics/histogram_tester.cc",
-        "base/test/metrics/user_action_tester.cc",
-        "base/test/mock_devices_changed_observer.cc",
-        "base/test/mock_entropy_provider.cc",
-        "base/test/mock_log.cc",
-        "base/test/multiprocess_test.cc",
-        "base/test/multiprocess_test_android.cc",
-        "base/test/null_task_runner.cc",
-        "base/test/perf_log.cc",
-        "base/test/perf_test_suite.cc",
-        "base/test/perf_time_logger.cc",
-        "base/test/power_monitor_test.cc",
-        "base/test/power_monitor_test_utils.cc",
-        "base/test/reached_code_profiler_android.cc",
-        "base/test/scoped_command_line.cc",
-        "base/test/scoped_feature_list.cc",
-        "base/test/scoped_locale.cc",
-        "base/test/scoped_mock_clock_override.cc",
-        "base/test/scoped_mock_time_message_loop_task_runner.cc",
-        "base/test/scoped_path_override.cc",
-        "base/test/scoped_run_loop_timeout.cc",
-        "base/test/sequenced_task_runner_test_template.cc",
-        "base/test/simple_test_clock.cc",
-        "base/test/simple_test_tick_clock.cc",
-        "base/test/task_environment.cc",
-        "base/test/task_runner_test_template.cc",
-        "base/test/test_discardable_memory_allocator.cc",
-        "base/test/test_file_util.cc",
-        "base/test/test_file_util_android.cc",
-        "base/test/test_file_util_linux.cc",
-        "base/test/test_file_util_posix.cc",
-        "base/test/test_io_thread.cc",
-        "base/test/test_message_loop.cc",
-        "base/test/test_mock_time_task_runner.cc",
-        "base/test/test_pending_task.cc",
-        "base/test/test_shared_memory_util.cc",
-        "base/test/test_simple_task_runner.cc",
-        "base/test/test_suite.cc",
-        "base/test/test_support_android.cc",
-        "base/test/test_waitable_event.cc",
-        "base/test/thread_pool_test_helpers_android.cc",
-        "base/test/thread_test_helper.cc",
-        "base/test/values_test_util.cc",
-        "base/test/with_feature_override.cc",
-        "base/timer/mock_timer.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_base_test_base_unittests_jni_headers__testing",
-        "cronet_aml_base_test_test_support_jni_headers__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_base_test_base_unittests_jni_headers__testing",
-        "cronet_aml_base_test_test_support_jni_headers__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/libxml/linux/include/",
-        "third_party/libxml/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base/test:test_support_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_base_test_test_support_jni_headers__testing",
-    srcs: [
-        "base/test/android/java/src/org/chromium/base/MainReturnCodeResult.java",
-        "base/test/android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java",
-        "base/test/android/javatests/src/org/chromium/base/test/ReachedCodeProfiler.java",
-        "base/test/android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java",
-        "base/test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/base/test/test_support_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "MainReturnCodeResult_jni.h " +
-         "--output_name " +
-         "MultiprocessTestClientLauncher_jni.h " +
-         "--output_name " +
-         "ReachedCodeProfiler_jni.h " +
-         "--output_name " +
-         "ThreadPoolTestHelpers_jni.h " +
-         "--output_name " +
-         "UrlUtils_jni.h " +
-         "--input_file " +
-         "$(location base/test/android/java/src/org/chromium/base/MainReturnCodeResult.java) " +
-         "--input_file " +
-         "$(location base/test/android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java) " +
-         "--input_file " +
-         "$(location base/test/android/javatests/src/org/chromium/base/test/ReachedCodeProfiler.java) " +
-         "--input_file " +
-         "$(location base/test/android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java) " +
-         "--input_file " +
-         "$(location base/test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java)",
-    out: [
-        "base/test/test_support_jni_headers/MainReturnCodeResult_jni.h",
-        "base/test/test_support_jni_headers/MultiprocessTestClientLauncher_jni.h",
-        "base/test/test_support_jni_headers/ReachedCodeProfiler_jni.h",
-        "base/test/test_support_jni_headers/ThreadPoolTestHelpers_jni.h",
-        "base/test/test_support_jni_headers/UrlUtils_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base/third_party/double_conversion:double_conversion
-cc_library_static {
-    name: "cronet_aml_base_third_party_double_conversion_double_conversion",
-    srcs: [
-        "base/third_party/double_conversion/double-conversion/bignum-dtoa.cc",
-        "base/third_party/double_conversion/double-conversion/bignum.cc",
-        "base/third_party/double_conversion/double-conversion/cached-powers.cc",
-        "base/third_party/double_conversion/double-conversion/double-to-string.cc",
-        "base/third_party/double_conversion/double-conversion/fast-dtoa.cc",
-        "base/third_party/double_conversion/double-conversion/fixed-dtoa.cc",
-        "base/third_party/double_conversion/double-conversion/string-to-double.cc",
-        "base/third_party/double_conversion/double-conversion/strtod.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base/third_party/double_conversion:double_conversion__testing
-cc_library_static {
-    name: "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-    srcs: [
-        "base/third_party/double_conversion/double-conversion/bignum-dtoa.cc",
-        "base/third_party/double_conversion/double-conversion/bignum.cc",
-        "base/third_party/double_conversion/double-conversion/cached-powers.cc",
-        "base/third_party/double_conversion/double-conversion/double-to-string.cc",
-        "base/third_party/double_conversion/double-conversion/fast-dtoa.cc",
-        "base/third_party/double_conversion/double-conversion/fixed-dtoa.cc",
-        "base/third_party/double_conversion/double-conversion/string-to-double.cc",
-        "base/third_party/double_conversion/double-conversion/strtod.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //base/third_party/dynamic_annotations:dynamic_annotations
-cc_library_static {
-    name: "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-    srcs: [
-        "base/third_party/dynamic_annotations/dynamic_annotations.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //base/third_party/dynamic_annotations:dynamic_annotations__testing
-cc_library_static {
-    name: "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-    srcs: [
-        "base/third_party/dynamic_annotations/dynamic_annotations.c",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //base:tracing_buildflags
-cc_genrule {
-    name: "cronet_aml_base_tracing_buildflags",
-    cmd: "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:tracing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "base/tracing_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //base:tracing_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_base_tracing_buildflags__testing",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:tracing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ $$CC_OS != 'android' ]]; " +
-         "then " +
-         "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:tracing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:tracing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:tracing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags ENABLE_BASE_TRACING=\"false\" USE_PERFETTO_CLIENT_LIBRARY=\"false\" OPTIONAL_TRACE_EVENTS_ENABLED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//base:tracing_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    host_supported: true,
-    out: [
-        "base/tracing_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build/android:build_config_gen
-genrule {
-    name: "cronet_aml_build_android_build_config_gen",
-    srcs: [
-        ":cronet_aml_build_android_build_config_gen_preprocess",
-    ],
-    tools: [
-        "soong_zip",
-    ],
-    cmd: "cp $(in) $(genDir)/BuildConfig.java && " +
-         "$(location soong_zip) -o $(out) -srcjar -C $(genDir) -f $(genDir)/BuildConfig.java",
-    out: [
-        "BuildConfig.srcjar",
-    ],
-}
-
-// GN: //build/android:build_config_gen
-cc_object {
-    name: "cronet_aml_build_android_build_config_gen_preprocess",
-    srcs: [
-        ":cronet_aml_build_android_build_config_gen_rename",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-E",
-        "-P",
-    ],
-    compile_multilib: "first",
-}
-
-// GN: //build/android:build_config_gen
-genrule {
-    name: "cronet_aml_build_android_build_config_gen_rename",
-    srcs: [
-        "build/android/java/templates/BuildConfig.template",
-    ],
-    cmd: "cp $(in) $(out)",
-    out: [
-        "BuildConfig.cc",
-    ],
-}
-
-// GN: //build/android:native_libraries_gen
-java_genrule {
-    name: "cronet_aml_build_android_native_libraries_gen",
-    cmd: "$(location build/android/gyp/write_native_libraries_java.py) --output " +
-         "$(out) " +
-         "--cpu-family " +
-         "CPU_FAMILY_ARM",
-    out: [
-        "build/android/native_libraries_gen.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/write_native_libraries_java.py",
-        "build/gn_helpers.py",
-    ],
-}
-
-// GN: //build:branding_buildflags
-cc_genrule {
-    name: "cronet_aml_build_branding_buildflags",
-    cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build:branding_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "build/branding_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build:branding_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_build_branding_buildflags__testing",
-    cmd: "echo '--flags CHROMIUM_BRANDING=\"1\" GOOGLE_CHROME_BRANDING=\"0\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build:branding_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "build/branding_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build:chromecast_buildflags
-cc_genrule {
-    name: "cronet_aml_build_chromecast_buildflags",
-    cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build:chromecast_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "build/chromecast_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build:chromecast_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_build_chromecast_buildflags__testing",
-    cmd: "echo '--flags IS_CASTOS=\"false\" IS_CAST_ANDROID=\"false\" ENABLE_CAST_RECEIVER=\"false\" IS_CHROMECAST=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build:chromecast_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "build/chromecast_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build:chromeos_buildflags
-cc_genrule {
-    name: "cronet_aml_build_chromeos_buildflags",
-    cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build:chromeos_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "build/chromeos_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build:chromeos_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_build_chromeos_buildflags__testing",
-    cmd: "echo '--flags IS_CHROMEOS_DEVICE=\"false\" IS_CHROMEOS_LACROS=\"false\" IS_CHROMEOS_ASH=\"false\" IS_CHROMEOS_WITH_HW_DETAILS=\"false\" IS_REVEN=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build:chromeos_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "build/chromeos_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build/config/compiler:compiler_buildflags
-cc_genrule {
-    name: "cronet_aml_build_config_compiler_compiler_buildflags",
-    cmd: "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build/config/compiler:compiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "build/config/compiler/compiler_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //build/config/compiler:compiler_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_build_config_compiler_compiler_buildflags__testing",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build/config/compiler:compiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ $$CC_OS != 'android' ]]; " +
-         "then " +
-         "echo '--flags CLANG_PGO=\"2\" SYMBOL_LEVEL=\"1\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build/config/compiler:compiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build/config/compiler:compiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build/config/compiler:compiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags CLANG_PGO=\"0\" SYMBOL_LEVEL=\"1\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//build/config/compiler:compiler_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    host_supported: true,
-    out: [
-        "build/config/compiler/compiler_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //buildtools/third_party/libc++:libc++
-cc_library_static {
-    name: "cronet_aml_buildtools_third_party_libc___libc__",
-    srcs: [
-        "buildtools/third_party/libc++/trunk/src/algorithm.cpp",
-        "buildtools/third_party/libc++/trunk/src/any.cpp",
-        "buildtools/third_party/libc++/trunk/src/atomic.cpp",
-        "buildtools/third_party/libc++/trunk/src/barrier.cpp",
-        "buildtools/third_party/libc++/trunk/src/bind.cpp",
-        "buildtools/third_party/libc++/trunk/src/charconv.cpp",
-        "buildtools/third_party/libc++/trunk/src/chrono.cpp",
-        "buildtools/third_party/libc++/trunk/src/condition_variable.cpp",
-        "buildtools/third_party/libc++/trunk/src/condition_variable_destructor.cpp",
-        "buildtools/third_party/libc++/trunk/src/exception.cpp",
-        "buildtools/third_party/libc++/trunk/src/format.cpp",
-        "buildtools/third_party/libc++/trunk/src/functional.cpp",
-        "buildtools/third_party/libc++/trunk/src/future.cpp",
-        "buildtools/third_party/libc++/trunk/src/hash.cpp",
-        "buildtools/third_party/libc++/trunk/src/ios.cpp",
-        "buildtools/third_party/libc++/trunk/src/ios.instantiations.cpp",
-        "buildtools/third_party/libc++/trunk/src/iostream.cpp",
-        "buildtools/third_party/libc++/trunk/src/legacy_pointer_safety.cpp",
-        "buildtools/third_party/libc++/trunk/src/locale.cpp",
-        "buildtools/third_party/libc++/trunk/src/memory.cpp",
-        "buildtools/third_party/libc++/trunk/src/mutex.cpp",
-        "buildtools/third_party/libc++/trunk/src/mutex_destructor.cpp",
-        "buildtools/third_party/libc++/trunk/src/new.cpp",
-        "buildtools/third_party/libc++/trunk/src/optional.cpp",
-        "buildtools/third_party/libc++/trunk/src/random.cpp",
-        "buildtools/third_party/libc++/trunk/src/random_shuffle.cpp",
-        "buildtools/third_party/libc++/trunk/src/regex.cpp",
-        "buildtools/third_party/libc++/trunk/src/ryu/d2fixed.cpp",
-        "buildtools/third_party/libc++/trunk/src/ryu/d2s.cpp",
-        "buildtools/third_party/libc++/trunk/src/ryu/f2s.cpp",
-        "buildtools/third_party/libc++/trunk/src/shared_mutex.cpp",
-        "buildtools/third_party/libc++/trunk/src/stdexcept.cpp",
-        "buildtools/third_party/libc++/trunk/src/string.cpp",
-        "buildtools/third_party/libc++/trunk/src/strstream.cpp",
-        "buildtools/third_party/libc++/trunk/src/system_error.cpp",
-        "buildtools/third_party/libc++/trunk/src/thread.cpp",
-        "buildtools/third_party/libc++/trunk/src/typeinfo.cpp",
-        "buildtools/third_party/libc++/trunk/src/utility.cpp",
-        "buildtools/third_party/libc++/trunk/src/valarray.cpp",
-        "buildtools/third_party/libc++/trunk/src/variant.cpp",
-        "buildtools/third_party/libc++/trunk/src/vector.cpp",
-        "buildtools/third_party/libc++/trunk/src/verbose_abort.cpp",
-    ],
-    static_libs: [
-        "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DLIBCXX_BUILDING_LIBCXXABI",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
-        "-D_LIBCPP_BUILDING_LIBRARY",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++/trunk/src/",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    cppflags: [
-        "-fexceptions",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //buildtools/third_party/libc++:libc++__testing
-cc_library_static {
-    name: "cronet_aml_buildtools_third_party_libc___libc____testing",
-    srcs: [
-        "buildtools/third_party/libc++/trunk/src/algorithm.cpp",
-        "buildtools/third_party/libc++/trunk/src/any.cpp",
-        "buildtools/third_party/libc++/trunk/src/atomic.cpp",
-        "buildtools/third_party/libc++/trunk/src/barrier.cpp",
-        "buildtools/third_party/libc++/trunk/src/bind.cpp",
-        "buildtools/third_party/libc++/trunk/src/charconv.cpp",
-        "buildtools/third_party/libc++/trunk/src/chrono.cpp",
-        "buildtools/third_party/libc++/trunk/src/condition_variable.cpp",
-        "buildtools/third_party/libc++/trunk/src/condition_variable_destructor.cpp",
-        "buildtools/third_party/libc++/trunk/src/exception.cpp",
-        "buildtools/third_party/libc++/trunk/src/format.cpp",
-        "buildtools/third_party/libc++/trunk/src/functional.cpp",
-        "buildtools/third_party/libc++/trunk/src/future.cpp",
-        "buildtools/third_party/libc++/trunk/src/hash.cpp",
-        "buildtools/third_party/libc++/trunk/src/ios.cpp",
-        "buildtools/third_party/libc++/trunk/src/ios.instantiations.cpp",
-        "buildtools/third_party/libc++/trunk/src/iostream.cpp",
-        "buildtools/third_party/libc++/trunk/src/legacy_pointer_safety.cpp",
-        "buildtools/third_party/libc++/trunk/src/locale.cpp",
-        "buildtools/third_party/libc++/trunk/src/memory.cpp",
-        "buildtools/third_party/libc++/trunk/src/mutex.cpp",
-        "buildtools/third_party/libc++/trunk/src/mutex_destructor.cpp",
-        "buildtools/third_party/libc++/trunk/src/new.cpp",
-        "buildtools/third_party/libc++/trunk/src/optional.cpp",
-        "buildtools/third_party/libc++/trunk/src/random.cpp",
-        "buildtools/third_party/libc++/trunk/src/random_shuffle.cpp",
-        "buildtools/third_party/libc++/trunk/src/regex.cpp",
-        "buildtools/third_party/libc++/trunk/src/ryu/d2fixed.cpp",
-        "buildtools/third_party/libc++/trunk/src/ryu/d2s.cpp",
-        "buildtools/third_party/libc++/trunk/src/ryu/f2s.cpp",
-        "buildtools/third_party/libc++/trunk/src/shared_mutex.cpp",
-        "buildtools/third_party/libc++/trunk/src/stdexcept.cpp",
-        "buildtools/third_party/libc++/trunk/src/string.cpp",
-        "buildtools/third_party/libc++/trunk/src/strstream.cpp",
-        "buildtools/third_party/libc++/trunk/src/system_error.cpp",
-        "buildtools/third_party/libc++/trunk/src/thread.cpp",
-        "buildtools/third_party/libc++/trunk/src/typeinfo.cpp",
-        "buildtools/third_party/libc++/trunk/src/utility.cpp",
-        "buildtools/third_party/libc++/trunk/src/valarray.cpp",
-        "buildtools/third_party/libc++/trunk/src/variant.cpp",
-        "buildtools/third_party/libc++/trunk/src/vector.cpp",
-        "buildtools/third_party/libc++/trunk/src/verbose_abort.cpp",
-    ],
-    static_libs: [
-        "cronet_aml_buildtools_third_party_libc__abi_libc__abi__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DLIBCXX_BUILDING_LIBCXXABI",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
-        "-D_LIBCPP_BUILDING_LIBRARY",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++/trunk/src/",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    cppflags: [
-        "-fexceptions",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //buildtools/third_party/libc++abi:libc++abi
-cc_library_static {
-    name: "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
-    srcs: [
-        "buildtools/third_party/libc++abi/trunk/src/abort_message.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_aux_runtime.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_default_handlers.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_exception.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_exception_storage.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_guard.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_handlers.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_personality.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_thread_atexit.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_vector.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_virtual.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/fallback_malloc.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/private_typeinfo.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/stdlib_exception.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/stdlib_stdexcept.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/stdlib_typeinfo.cpp",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DLIBCXXABI_SILENT_TERMINATE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_BUILDING_LIBRARY",
-        "-D_LIBCPP_CONSTINIT=constinit",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++/trunk/src/",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    cppflags: [
-        "-fexceptions",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            srcs: [
-                "buildtools/third_party/libc++abi/trunk/src/cxa_demangle.cpp",
-            ],
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //buildtools/third_party/libc++abi:libc++abi__testing
-cc_library_static {
-    name: "cronet_aml_buildtools_third_party_libc__abi_libc__abi__testing",
-    srcs: [
-        "buildtools/third_party/libc++abi/trunk/src/abort_message.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_aux_runtime.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_default_handlers.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_exception.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_exception_storage.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_guard.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_handlers.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_personality.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_thread_atexit.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_vector.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/cxa_virtual.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/fallback_malloc.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/private_typeinfo.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/stdlib_exception.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/stdlib_stdexcept.cpp",
-        "buildtools/third_party/libc++abi/trunk/src/stdlib_typeinfo.cpp",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DLIBCXXABI_SILENT_TERMINATE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_BUILDING_LIBRARY",
-        "-D_LIBCPP_CONSTINIT=constinit",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++/trunk/src/",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    cppflags: [
-        "-fexceptions",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            srcs: [
-                "buildtools/third_party/libc++abi/trunk/src/cxa_demangle.cpp",
-            ],
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //components/cronet/android:buildflags
-cc_genrule {
-    name: "cronet_aml_components_cronet_android_buildflags",
-    cmd: "echo '--flags INTEGRATED_MODE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//components/cronet/android:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "components/cronet/android/buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet/android:buildflags__testing
-cc_genrule {
-    name: "cronet_aml_components_cronet_android_buildflags__testing",
-    cmd: "echo '--flags INTEGRATED_MODE=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//components/cronet/android:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "components/cronet/android/buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet/android:cronet
-cc_library_shared {
-    name: "cronet_aml_components_cronet_android_cronet",
-    srcs: [
-        "components/cronet/android/cronet_jni.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_buildtools_third_party_libc___libc__",
-        "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
-        "cronet_aml_components_cronet_android_cronet_static",
-        "cronet_aml_components_cronet_cronet_common",
-        "cronet_aml_components_cronet_cronet_version_header",
-        "cronet_aml_components_cronet_metrics_util",
-        "cronet_aml_components_metrics_library_support",
-        "cronet_aml_components_prefs_prefs",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_dns_dns",
-        "cronet_aml_net_dns_public_public",
-        "cronet_aml_net_http_transport_security_state_generated_files",
-        "cronet_aml_net_net",
-        "cronet_aml_net_net_deps",
-        "cronet_aml_net_net_public_deps",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    stem: "libcronet.108.0.5359.128",
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet/android:cronet_jni_headers
-cc_genrule {
-    name: "cronet_aml_components_cronet_android_cronet_jni_headers",
-    srcs: [
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/components/cronet/android/cronet_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "CronetBidirectionalStream_jni.h " +
-         "--output_name " +
-         "CronetLibraryLoader_jni.h " +
-         "--output_name " +
-         "CronetUploadDataStream_jni.h " +
-         "--output_name " +
-         "CronetUrlRequest_jni.h " +
-         "--output_name " +
-         "CronetUrlRequestContext_jni.h " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java) " +
-         "--package_prefix " +
-         "android.net.http.internal",
-    out: [
-        "components/cronet/android/cronet_jni_headers/CronetBidirectionalStream_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetLibraryLoader_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetUploadDataStream_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetUrlRequestContext_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetUrlRequest_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet/android:cronet_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_components_cronet_android_cronet_jni_headers__testing",
-    srcs: [
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/components/cronet/android/cronet_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "CronetBidirectionalStream_jni.h " +
-         "--output_name " +
-         "CronetLibraryLoader_jni.h " +
-         "--output_name " +
-         "CronetUploadDataStream_jni.h " +
-         "--output_name " +
-         "CronetUrlRequest_jni.h " +
-         "--output_name " +
-         "CronetUrlRequestContext_jni.h " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java) " +
-         "--input_file " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java)",
-    out: [
-        "components/cronet/android/cronet_jni_headers/CronetBidirectionalStream_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetLibraryLoader_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetUploadDataStream_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetUrlRequestContext_jni.h",
-        "components/cronet/android/cronet_jni_headers/CronetUrlRequest_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet/android:cronet_jni_registration
-cc_genrule {
-    name: "cronet_aml_components_cronet_android_cronet_jni_registration",
-    srcs: [
-        "base/android/java/src/org/chromium/base/ActivityState.java",
-        "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CallbackController.java",
-        "base/android/java/src/org/chromium/base/CollectionUtil.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
-        "base/android/java/src/org/chromium/base/Consumer.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/ContextUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/Function.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/JniException.java",
-        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-        "base/android/java/src/org/chromium/base/LifetimeAssert.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/Log.java",
-        "base/android/java/src/org/chromium/base/MathUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-        "base/android/java/src/org/chromium/base/ObserverList.java",
-        "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
-        "base/android/java/src/org/chromium/base/PackageUtils.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
-        "base/android/java/src/org/chromium/base/Predicate.java",
-        "base/android/java/src/org/chromium/base/Promise.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/StreamUtil.java",
-        "base/android/java/src/org/chromium/base/StrictModeContext.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimeUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/UnownedUserData.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
-        "base/android/java/src/org/chromium/base/UserData.java",
-        "base/android/java/src/org/chromium/base/UserDataHost.java",
-        "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
-        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
-        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
-        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
-        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
-        "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/library_loader/Linker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
-        "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
-        "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
-        "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
-        "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
-        "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
-        "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/Supplier.java",
-        "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
-        "base/android/java/src/org/chromium/base/task/AsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
-        "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
-        "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraits.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
-        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
-        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
-        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
-        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
-        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
-        "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
-        "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
-        "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-    ],
-    cmd: "current_dir=`basename \\`pwd\\``; " +
-         "for f in $(in); " +
-         "do " +
-         "echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
-         "done; " +
-         "python3 $(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.srcjar " +
-         "--depfile " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.d " +
-         "--sources-files " +
-         "$(genDir)/java.sources " +
-         "--include_test_only " +
-         "--use_proxy_hash " +
-         "--header-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h " +
-         "--manual_jni_registration " +
-         "--package_prefix " +
-         "android.net.http.internal " +
-         ";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g'  " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h",
-    out: [
-        "components/cronet/android/cronet_jni_registration.h",
-        "components/cronet/android/cronet_jni_registration.srcjar",
-    ],
-    tool_files: [
-        "base/android/jni_generator/jni_generator.py",
-        "base/android/jni_generator/jni_registration_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet/android:cronet_jni_registration
-java_genrule {
-    name: "cronet_aml_components_cronet_android_cronet_jni_registration__java",
-    srcs: [
-        "base/android/java/src/org/chromium/base/ActivityState.java",
-        "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CallbackController.java",
-        "base/android/java/src/org/chromium/base/CollectionUtil.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
-        "base/android/java/src/org/chromium/base/Consumer.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/ContextUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/Function.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/JniException.java",
-        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-        "base/android/java/src/org/chromium/base/LifetimeAssert.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/Log.java",
-        "base/android/java/src/org/chromium/base/MathUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-        "base/android/java/src/org/chromium/base/ObserverList.java",
-        "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
-        "base/android/java/src/org/chromium/base/PackageUtils.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
-        "base/android/java/src/org/chromium/base/Predicate.java",
-        "base/android/java/src/org/chromium/base/Promise.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/StreamUtil.java",
-        "base/android/java/src/org/chromium/base/StrictModeContext.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimeUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/UnownedUserData.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
-        "base/android/java/src/org/chromium/base/UserData.java",
-        "base/android/java/src/org/chromium/base/UserDataHost.java",
-        "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
-        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
-        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
-        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
-        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
-        "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/library_loader/Linker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
-        "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
-        "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
-        "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
-        "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
-        "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
-        "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/Supplier.java",
-        "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
-        "base/android/java/src/org/chromium/base/task/AsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
-        "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
-        "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraits.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
-        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
-        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
-        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
-        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
-        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
-        "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
-        "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
-        "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-    ],
-    cmd: "current_dir=`basename \\`pwd\\``; " +
-         "for f in $(in); " +
-         "do " +
-         "echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
-         "done; " +
-         "python3 $(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.srcjar " +
-         "--depfile " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.d " +
-         "--sources-files " +
-         "$(genDir)/java.sources " +
-         "--include_test_only " +
-         "--use_proxy_hash " +
-         "--header-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h " +
-         "--manual_jni_registration " +
-         "--package_prefix " +
-         "android.net.http.internal " +
-         ";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g'  " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h",
-    out: [
-        "components/cronet/android/cronet_jni_registration.srcjar",
-    ],
-    tool_files: [
-        "base/android/jni_generator/jni_generator.py",
-        "base/android/jni_generator/jni_registration_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-}
-
-// GN: //components/cronet/android:cronet_jni_registration
-java_genrule {
-    name: "cronet_aml_components_cronet_android_cronet_jni_registration__java__testing",
-    srcs: [
-        "base/android/java/src/org/chromium/base/ActivityState.java",
-        "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CallbackController.java",
-        "base/android/java/src/org/chromium/base/CollectionUtil.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
-        "base/android/java/src/org/chromium/base/Consumer.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/ContextUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/Function.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/JniException.java",
-        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-        "base/android/java/src/org/chromium/base/LifetimeAssert.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/Log.java",
-        "base/android/java/src/org/chromium/base/MathUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-        "base/android/java/src/org/chromium/base/ObserverList.java",
-        "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
-        "base/android/java/src/org/chromium/base/PackageUtils.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
-        "base/android/java/src/org/chromium/base/Predicate.java",
-        "base/android/java/src/org/chromium/base/Promise.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/StreamUtil.java",
-        "base/android/java/src/org/chromium/base/StrictModeContext.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimeUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/UnownedUserData.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
-        "base/android/java/src/org/chromium/base/UserData.java",
-        "base/android/java/src/org/chromium/base/UserDataHost.java",
-        "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
-        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
-        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
-        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
-        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
-        "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/library_loader/Linker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
-        "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
-        "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
-        "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
-        "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
-        "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
-        "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/Supplier.java",
-        "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
-        "base/android/java/src/org/chromium/base/task/AsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
-        "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
-        "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraits.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
-        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
-        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
-        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
-        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
-        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
-        "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
-        "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
-        "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-    ],
-    cmd: "current_dir=`basename \\`pwd\\``; " +
-         "for f in $(in); " +
-         "do " +
-         "echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
-         "done; " +
-         "python3 $(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.srcjar " +
-         "--depfile " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.d " +
-         "--sources-files " +
-         "$(genDir)/java.sources " +
-         "--include_test_only " +
-         "--use_proxy_hash " +
-         "--header-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h " +
-         "--manual_jni_registration " +
-         ";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g'  " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h",
-    out: [
-        "components/cronet/android/cronet_jni_registration.srcjar",
-    ],
-    tool_files: [
-        "base/android/jni_generator/jni_generator.py",
-        "base/android/jni_generator/jni_registration_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-}
-
-// GN: //components/cronet/android:cronet_jni_registration__testing
-cc_genrule {
-    name: "cronet_aml_components_cronet_android_cronet_jni_registration__testing",
-    srcs: [
-        "base/android/java/src/org/chromium/base/ActivityState.java",
-        "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CallbackController.java",
-        "base/android/java/src/org/chromium/base/CollectionUtil.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
-        "base/android/java/src/org/chromium/base/Consumer.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/ContextUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/Function.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/JniException.java",
-        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-        "base/android/java/src/org/chromium/base/LifetimeAssert.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/Log.java",
-        "base/android/java/src/org/chromium/base/MathUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-        "base/android/java/src/org/chromium/base/ObserverList.java",
-        "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
-        "base/android/java/src/org/chromium/base/PackageUtils.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
-        "base/android/java/src/org/chromium/base/Predicate.java",
-        "base/android/java/src/org/chromium/base/Promise.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/StreamUtil.java",
-        "base/android/java/src/org/chromium/base/StrictModeContext.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimeUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/UnownedUserData.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
-        "base/android/java/src/org/chromium/base/UserData.java",
-        "base/android/java/src/org/chromium/base/UserDataHost.java",
-        "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
-        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
-        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
-        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
-        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
-        "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/library_loader/Linker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
-        "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
-        "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
-        "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
-        "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
-        "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
-        "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/Supplier.java",
-        "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
-        "base/android/java/src/org/chromium/base/task/AsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
-        "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
-        "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraits.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
-        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
-        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
-        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
-        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
-        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
-        "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
-        "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
-        "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-    ],
-    cmd: "current_dir=`basename \\`pwd\\``; " +
-         "for f in $(in); " +
-         "do " +
-         "echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
-         "done; " +
-         "python3 $(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.srcjar " +
-         "--depfile " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.d " +
-         "--sources-files " +
-         "$(genDir)/java.sources " +
-         "--include_test_only " +
-         "--use_proxy_hash " +
-         "--header-path " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h " +
-         "--manual_jni_registration " +
-         ";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g'  " +
-         "$(genDir)/components/cronet/android/cronet_jni_registration.h",
-    out: [
-        "components/cronet/android/cronet_jni_registration.h",
-        "components/cronet/android/cronet_jni_registration.srcjar",
-    ],
-    tool_files: [
-        "base/android/jni_generator/jni_generator.py",
-        "base/android/jni_generator/jni_registration_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet/android:cronet_static
-cc_library_static {
-    name: "cronet_aml_components_cronet_android_cronet_static",
-    srcs: [
-        "components/cronet/android/cronet_bidirectional_stream_adapter.cc",
-        "components/cronet/android/cronet_context_adapter.cc",
-        "components/cronet/android/cronet_library_loader.cc",
-        "components/cronet/android/cronet_upload_data_stream_adapter.cc",
-        "components/cronet/android/cronet_url_request_adapter.cc",
-        "components/cronet/android/io_buffer_with_byte_buffer.cc",
-        "components/cronet/android/url_request_error.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_components_cronet_cronet_common",
-        "cronet_aml_components_cronet_cronet_version_header",
-        "cronet_aml_components_cronet_metrics_util",
-        "cronet_aml_components_metrics_library_support",
-        "cronet_aml_components_prefs_prefs",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_dns_dns",
-        "cronet_aml_net_dns_public_public",
-        "cronet_aml_net_http_transport_security_state_generated_files",
-        "cronet_aml_net_net",
-        "cronet_aml_net_net_deps",
-        "cronet_aml_net_net_public_deps",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_components_cronet_android_buildflags",
-        "cronet_aml_components_cronet_android_cronet_jni_headers",
-        "cronet_aml_components_cronet_android_cronet_jni_registration",
-        "cronet_aml_url_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_components_cronet_android_buildflags",
-        "cronet_aml_components_cronet_android_cronet_jni_headers",
-        "cronet_aml_components_cronet_android_cronet_jni_registration",
-        "cronet_aml_url_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet/android:cronet_static__testing
-cc_library_static {
-    name: "cronet_aml_components_cronet_android_cronet_static__testing",
-    srcs: [
-        "components/cronet/android/cronet_bidirectional_stream_adapter.cc",
-        "components/cronet/android/cronet_context_adapter.cc",
-        "components/cronet/android/cronet_library_loader.cc",
-        "components/cronet/android/cronet_upload_data_stream_adapter.cc",
-        "components/cronet/android/cronet_url_request_adapter.cc",
-        "components/cronet/android/io_buffer_with_byte_buffer.cc",
-        "components/cronet/android/url_request_error.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_components_cronet_cronet_common__testing",
-        "cronet_aml_components_cronet_cronet_version_header__testing",
-        "cronet_aml_components_cronet_metrics_util__testing",
-        "cronet_aml_components_metrics_library_support__testing",
-        "cronet_aml_components_prefs_prefs__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_components_cronet_android_buildflags__testing",
-        "cronet_aml_components_cronet_android_cronet_jni_headers__testing",
-        "cronet_aml_components_cronet_android_cronet_jni_registration__testing",
-        "cronet_aml_url_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_components_cronet_android_buildflags__testing",
-        "cronet_aml_components_cronet_android_cronet_jni_headers__testing",
-        "cronet_aml_components_cronet_android_cronet_jni_registration__testing",
-        "cronet_aml_url_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet/android:cronet_unittests_android__library__testing
-cc_library_shared {
-    name: "cronet_aml_components_cronet_android_cronet_unittests_android__library__testing",
-    srcs: [
-        "components/cronet/run_all_unittests.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_test_test_support__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_buildtools_third_party_libc___libc____testing",
-        "cronet_aml_buildtools_third_party_libc__abi_libc__abi__testing",
-        "cronet_aml_components_cronet_android_cronet_static__testing",
-        "cronet_aml_components_cronet_cronet_common__testing",
-        "cronet_aml_components_cronet_cronet_common_unittests__testing",
-        "cronet_aml_components_cronet_cronet_version_header__testing",
-        "cronet_aml_components_cronet_metrics_util__testing",
-        "cronet_aml_components_metrics_library_support__testing",
-        "cronet_aml_components_prefs_prefs__testing",
-        "cronet_aml_components_prefs_test_support__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_dns_test_support__testing",
-        "cronet_aml_net_gtest_util__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_quic_test_flags_utils__testing",
-        "cronet_aml_net_simple_quic_tools__testing",
-        "cronet_aml_net_test_support__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_third_party_quiche_quiche_tool_support__testing",
-        "cronet_aml_net_tools_tld_cleanup_tld_cleanup__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_testing_android_native_test_native_test_native_code__testing",
-        "cronet_aml_testing_android_native_test_native_test_support__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DUSE_REMOTE_TEST_SERVER",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    stem: "libcronet_unittests_android__library",
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet/android:http_cache_type_java
-java_genrule {
-    name: "cronet_aml_components_cronet_android_http_cache_type_java",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location components/cronet/url_request_context_config.h)",
-    out: [
-        "components/cronet/android/http_cache_type_java.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "components/cronet/url_request_context_config.h",
-    ],
-}
-
-// GN: //components/cronet/android:implementation_api_version
-java_genrule {
-    name: "cronet_aml_components_cronet_android_implementation_api_version",
-    cmd: "$(location build/util/version.py) --official " +
-         "-f " +
-         "$(location chrome/VERSION) " +
-         "-f " +
-         "$(location build/util/LASTCHANGE) " +
-         "-e " +
-         "'API_LEVEL=19' " +
-         "-o " +
-         "$(out) " +
-         "$(location components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template)",
-    out: [
-        "components/cronet/android/templates/org/chromium/net/impl/ImplVersion.java",
-    ],
-    tool_files: [
-        "build/util/LASTCHANGE",
-        "build/util/android_chrome_version.py",
-        "build/util/version.py",
-        "chrome/VERSION",
-        "components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template",
-    ],
-}
-
-// GN: //components/cronet/android:integrated_mode_state
-genrule {
-    name: "cronet_aml_components_cronet_android_integrated_mode_state",
-    srcs: [
-        ":cronet_aml_components_cronet_android_integrated_mode_state_preprocess",
-    ],
-    tools: [
-        "soong_zip",
-    ],
-    cmd: "cp $(in) $(genDir)/IntegratedModeState.java && " +
-         "$(location soong_zip) -o $(out) -srcjar -C $(genDir) -f $(genDir)/IntegratedModeState.java",
-    out: [
-        "IntegratedModeState.srcjar",
-    ],
-}
-
-// GN: //components/cronet/android:integrated_mode_state
-cc_object {
-    name: "cronet_aml_components_cronet_android_integrated_mode_state_preprocess",
-    srcs: [
-        ":cronet_aml_components_cronet_android_integrated_mode_state_rename",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-E",
-        "-P",
-    ],
-    compile_multilib: "first",
-}
-
-// GN: //components/cronet/android:integrated_mode_state
-genrule {
-    name: "cronet_aml_components_cronet_android_integrated_mode_state_rename",
-    srcs: [
-        "components/cronet/android/java/src/org/chromium/net/impl/IntegratedModeState.template",
-    ],
-    cmd: "cp $(in) $(out)",
-    out: [
-        "IntegratedModeState.cc",
-    ],
-}
-
-// GN: //components/cronet/android:interface_api_version
-java_genrule {
-    name: "cronet_aml_components_cronet_android_interface_api_version",
-    cmd: "$(location build/util/version.py) --official " +
-         "-f " +
-         "$(location chrome/VERSION) " +
-         "-f " +
-         "$(location build/util/LASTCHANGE) " +
-         "-e " +
-         "'API_LEVEL=19' " +
-         "-o " +
-         "$(out) " +
-         "$(location components/cronet/android/api/src/android/net/http/ApiVersion.template)",
-    out: [
-        "components/cronet/android/templates/org/chromium/net/ApiVersion.java",
-    ],
-    tool_files: [
-        "build/util/LASTCHANGE",
-        "build/util/android_chrome_version.py",
-        "build/util/version.py",
-        "chrome/VERSION",
-        "components/cronet/android/api/src/android/net/http/ApiVersion.template",
-    ],
-}
-
-// GN: //components/cronet/android:load_states_list
-genrule {
-    name: "cronet_aml_components_cronet_android_load_states_list",
-    srcs: [
-        ":cronet_aml_components_cronet_android_load_states_list_preprocess",
-    ],
-    tools: [
-        "soong_zip",
-    ],
-    cmd: "cp $(in) $(genDir)/LoadState.java && " +
-         "$(location soong_zip) -o $(out) -srcjar -C $(genDir) -f $(genDir)/LoadState.java",
-    out: [
-        "LoadState.srcjar",
-    ],
-}
-
-// GN: //components/cronet/android:load_states_list
-cc_object {
-    name: "cronet_aml_components_cronet_android_load_states_list_preprocess",
-    srcs: [
-        ":cronet_aml_components_cronet_android_load_states_list_rename",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-E",
-        "-P",
-    ],
-    compile_multilib: "first",
-}
-
-// GN: //components/cronet/android:load_states_list
-genrule {
-    name: "cronet_aml_components_cronet_android_load_states_list_rename",
-    srcs: [
-        "components/cronet/android/java/src/org/chromium/net/impl/LoadState.template",
-    ],
-    cmd: "cp $(in) $(out)",
-    out: [
-        "LoadState.cc",
-    ],
-}
-
-// GN: //components/cronet/android:net_idempotency_java
-java_genrule {
-    name: "cronet_aml_components_cronet_android_net_idempotency_java",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location net/base/idempotency.h)",
-    out: [
-        "components/cronet/android/net_idempotency_java.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "net/base/idempotency.h",
-    ],
-}
-
-// GN: //components/cronet/android:net_request_priority_java
-java_genrule {
-    name: "cronet_aml_components_cronet_android_net_request_priority_java",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location net/base/request_priority.h)",
-    out: [
-        "components/cronet/android/net_request_priority_java.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "net/base/request_priority.h",
-    ],
-}
-
-// GN: //components/cronet/android:network_quality_observation_source_java
-java_genrule {
-    name: "cronet_aml_components_cronet_android_network_quality_observation_source_java",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location net/nqe/network_quality_observation_source.h)",
-    out: [
-        "components/cronet/android/network_quality_observation_source_java.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "net/nqe/network_quality_observation_source.h",
-    ],
-}
-
-// GN: //components/cronet/android:rtt_throughput_values_java
-java_genrule {
-    name: "cronet_aml_components_cronet_android_rtt_throughput_values_java",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location net/nqe/network_quality.h)",
-    out: [
-        "components/cronet/android/rtt_throughput_values_java.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "net/nqe/network_quality.h",
-    ],
-}
-
-// GN: //components/cronet/android:url_request_error_java
-java_genrule {
-    name: "cronet_aml_components_cronet_android_url_request_error_java",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location components/cronet/android/url_request_error.h)",
-    out: [
-        "components/cronet/android/url_request_error_java.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "components/cronet/android/url_request_error.h",
-    ],
-}
-
-// GN: //components/cronet:cronet_buildflags
-cc_genrule {
-    name: "cronet_aml_components_cronet_cronet_buildflags",
-    cmd: "echo '--flags DISABLE_HISTOGRAM_SUPPORT=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//components/cronet:cronet_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "components/cronet/cronet_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet:cronet_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_components_cronet_cronet_buildflags__testing",
-    cmd: "echo '--flags DISABLE_HISTOGRAM_SUPPORT=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//components/cronet:cronet_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "components/cronet/cronet_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet:cronet_common
-cc_library_static {
-    name: "cronet_aml_components_cronet_cronet_common",
-    srcs: [
-        "components/cronet/cronet_context.cc",
-        "components/cronet/cronet_prefs_manager.cc",
-        "components/cronet/cronet_upload_data_stream.cc",
-        "components/cronet/cronet_url_request.cc",
-        "components/cronet/host_cache_persistence_manager.cc",
-        "components/cronet/stale_host_resolver.cc",
-        "components/cronet/url_request_context_config.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_components_cronet_cronet_version_header",
-        "cronet_aml_components_metrics_library_support",
-        "cronet_aml_components_prefs_prefs",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_dns_dns",
-        "cronet_aml_net_dns_public_public",
-        "cronet_aml_net_http_transport_security_state_generated_files",
-        "cronet_aml_net_net",
-        "cronet_aml_net_net_deps",
-        "cronet_aml_net_net_public_deps",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    generated_headers: [
-        "cronet_aml_components_cronet_cronet_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_components_cronet_cronet_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet:cronet_common__testing
-cc_library_static {
-    name: "cronet_aml_components_cronet_cronet_common__testing",
-    srcs: [
-        "components/cronet/cronet_context.cc",
-        "components/cronet/cronet_prefs_manager.cc",
-        "components/cronet/cronet_upload_data_stream.cc",
-        "components/cronet/cronet_url_request.cc",
-        "components/cronet/host_cache_persistence_manager.cc",
-        "components/cronet/stale_host_resolver.cc",
-        "components/cronet/url_request_context_config.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_components_cronet_cronet_version_header__testing",
-        "cronet_aml_components_metrics_library_support__testing",
-        "cronet_aml_components_prefs_prefs__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_components_cronet_cronet_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_components_cronet_cronet_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet:cronet_common_unittests__testing
-cc_library_static {
-    name: "cronet_aml_components_cronet_cronet_common_unittests__testing",
-    srcs: [
-        "components/cronet/host_cache_persistence_manager_unittest.cc",
-        "components/cronet/network_tasks_unittest.cc",
-        "components/cronet/stale_host_resolver_unittest.cc",
-        "components/cronet/url_request_context_config_unittest.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_test_test_support__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_components_cronet_cronet_common__testing",
-        "cronet_aml_components_cronet_cronet_version_header__testing",
-        "cronet_aml_components_metrics_library_support__testing",
-        "cronet_aml_components_prefs_prefs__testing",
-        "cronet_aml_components_prefs_test_support__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_dns_test_support__testing",
-        "cronet_aml_net_gtest_util__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_quic_test_flags_utils__testing",
-        "cronet_aml_net_simple_quic_tools__testing",
-        "cronet_aml_net_test_support__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_third_party_quiche_quiche_tool_support__testing",
-        "cronet_aml_net_tools_tld_cleanup_tld_cleanup__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DUSE_REMOTE_TEST_SERVER",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet:cronet_version_header
-cc_library_static {
-    name: "cronet_aml_components_cronet_cronet_version_header",
-    generated_headers: [
-        "cronet_aml_components_cronet_cronet_version_header_action",
-    ],
-    export_generated_headers: [
-        "cronet_aml_components_cronet_cronet_version_header_action",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet:cronet_version_header__testing
-cc_library_static {
-    name: "cronet_aml_components_cronet_cronet_version_header__testing",
-    generated_headers: [
-        "cronet_aml_components_cronet_cronet_version_header_action__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_components_cronet_cronet_version_header_action__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet:cronet_version_header_action
-cc_genrule {
-    name: "cronet_aml_components_cronet_cronet_version_header_action",
-    cmd: "$(location build/util/version.py) --official " +
-         "-f " +
-         "$(location chrome/VERSION) " +
-         "-e " +
-         "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
-         "-o " +
-         "$(out) " +
-         "$(location components/cronet/version.h.in)",
-    out: [
-        "components/cronet/version.h",
-    ],
-    tool_files: [
-        "build/util/LASTCHANGE",
-        "build/util/android_chrome_version.py",
-        "build/util/version.py",
-        "chrome/VERSION",
-        "components/cronet/version.h.in",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet:cronet_version_header_action__testing
-cc_genrule {
-    name: "cronet_aml_components_cronet_cronet_version_header_action__testing",
-    cmd: "$(location build/util/version.py) --official " +
-         "-f " +
-         "$(location chrome/VERSION) " +
-         "-e " +
-         "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
-         "-o " +
-         "$(out) " +
-         "$(location components/cronet/version.h.in)",
-    out: [
-        "components/cronet/version.h",
-    ],
-    tool_files: [
-        "build/util/LASTCHANGE",
-        "build/util/android_chrome_version.py",
-        "build/util/version.py",
-        "chrome/VERSION",
-        "components/cronet/version.h.in",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/cronet:metrics_util
-cc_library_static {
-    name: "cronet_aml_components_cronet_metrics_util",
-    srcs: [
-        "components/cronet/metrics_util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/cronet:metrics_util__testing
-cc_library_static {
-    name: "cronet_aml_components_cronet_metrics_util__testing",
-    srcs: [
-        "components/cronet/metrics_util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/metrics:library_support
-cc_library_static {
-    name: "cronet_aml_components_metrics_library_support",
-    srcs: [
-        ":cronet_aml_third_party_metrics_proto_metrics_proto_gen",
-        "components/metrics/histogram_encoder.cc",
-        "components/metrics/library_support/histogram_manager.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-    ],
-    generated_headers: [
-        "cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/metrics:library_support__testing
-cc_library_static {
-    name: "cronet_aml_components_metrics_library_support__testing",
-    srcs: [
-        ":cronet_aml_third_party_metrics_proto_metrics_proto__testing_gen",
-        "components/metrics/histogram_encoder.cc",
-        "components/metrics/library_support/histogram_manager.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_third_party_metrics_proto_metrics_proto__testing_gen_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_third_party_metrics_proto_metrics_proto__testing_gen_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/prefs/android:jni_headers
-cc_genrule {
-    name: "cronet_aml_components_prefs_android_jni_headers",
-    srcs: [
-        "components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/components/prefs/android/jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "PrefService_jni.h " +
-         "--input_file " +
-         "$(location components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java) " +
-         "--package_prefix " +
-         "android.net.http.internal",
-    out: [
-        "components/prefs/android/jni_headers/PrefService_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/prefs/android:jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_components_prefs_android_jni_headers__testing",
-    srcs: [
-        "components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/components/prefs/android/jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "PrefService_jni.h " +
-         "--input_file " +
-         "$(location components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java)",
-    out: [
-        "components/prefs/android/jni_headers/PrefService_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //components/prefs:prefs
-cc_library_static {
-    name: "cronet_aml_components_prefs_prefs",
-    srcs: [
-        "components/prefs/android/pref_service_android.cc",
-        "components/prefs/command_line_pref_store.cc",
-        "components/prefs/default_pref_store.cc",
-        "components/prefs/in_memory_pref_store.cc",
-        "components/prefs/json_pref_store.cc",
-        "components/prefs/overlay_user_pref_store.cc",
-        "components/prefs/persistent_pref_store.cc",
-        "components/prefs/pref_change_registrar.cc",
-        "components/prefs/pref_member.cc",
-        "components/prefs/pref_notifier_impl.cc",
-        "components/prefs/pref_registry.cc",
-        "components/prefs/pref_registry_simple.cc",
-        "components/prefs/pref_service.cc",
-        "components/prefs/pref_service_factory.cc",
-        "components/prefs/pref_store.cc",
-        "components/prefs/pref_value_map.cc",
-        "components/prefs/pref_value_store.cc",
-        "components/prefs/scoped_user_pref_update.cc",
-        "components/prefs/segregated_pref_store.cc",
-        "components/prefs/value_map_pref_store.cc",
-        "components/prefs/writeable_pref_store.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_components_prefs_android_jni_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_components_prefs_android_jni_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCOMPONENTS_PREFS_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/prefs:prefs__testing
-cc_library_static {
-    name: "cronet_aml_components_prefs_prefs__testing",
-    srcs: [
-        "components/prefs/android/pref_service_android.cc",
-        "components/prefs/command_line_pref_store.cc",
-        "components/prefs/default_pref_store.cc",
-        "components/prefs/in_memory_pref_store.cc",
-        "components/prefs/json_pref_store.cc",
-        "components/prefs/overlay_user_pref_store.cc",
-        "components/prefs/persistent_pref_store.cc",
-        "components/prefs/pref_change_registrar.cc",
-        "components/prefs/pref_member.cc",
-        "components/prefs/pref_notifier_impl.cc",
-        "components/prefs/pref_registry.cc",
-        "components/prefs/pref_registry_simple.cc",
-        "components/prefs/pref_service.cc",
-        "components/prefs/pref_service_factory.cc",
-        "components/prefs/pref_store.cc",
-        "components/prefs/pref_value_map.cc",
-        "components/prefs/pref_value_store.cc",
-        "components/prefs/scoped_user_pref_update.cc",
-        "components/prefs/segregated_pref_store.cc",
-        "components/prefs/value_map_pref_store.cc",
-        "components/prefs/writeable_pref_store.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_components_prefs_android_jni_headers__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_components_prefs_android_jni_headers__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCOMPONENTS_PREFS_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //components/prefs:test_support__testing
-cc_library_static {
-    name: "cronet_aml_components_prefs_test_support__testing",
-    srcs: [
-        "components/prefs/mock_pref_change_callback.cc",
-        "components/prefs/pref_store_observer_mock.cc",
-        "components/prefs/pref_test_utils.cc",
-        "components/prefs/testing_pref_service.cc",
-        "components/prefs/testing_pref_store.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_test_test_support__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_components_prefs_prefs__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //crypto:buildflags
-cc_genrule {
-    name: "cronet_aml_crypto_buildflags",
-    cmd: "echo '--flags USE_NSS_CERTS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//crypto:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "crypto/crypto_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //crypto:buildflags__testing
-cc_genrule {
-    name: "cronet_aml_crypto_buildflags__testing",
-    cmd: "echo '--flags USE_NSS_CERTS=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//crypto:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    host_supported: true,
-    out: [
-        "crypto/crypto_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //crypto:crypto
-cc_library_static {
-    name: "cronet_aml_crypto_crypto",
-    srcs: [
-        "crypto/aead.cc",
-        "crypto/ec_private_key.cc",
-        "crypto/ec_signature_creator.cc",
-        "crypto/ec_signature_creator_impl.cc",
-        "crypto/encryptor.cc",
-        "crypto/hkdf.cc",
-        "crypto/hmac.cc",
-        "crypto/openssl_util.cc",
-        "crypto/p224_spake.cc",
-        "crypto/random.cc",
-        "crypto/rsa_private_key.cc",
-        "crypto/secure_hash.cc",
-        "crypto/secure_util.cc",
-        "crypto/sha2.cc",
-        "crypto/signature_creator.cc",
-        "crypto/signature_verifier.cc",
-        "crypto/symmetric_key.cc",
-        "crypto/unexportable_key.cc",
-        "crypto/unexportable_key_metrics.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    generated_headers: [
-        "cronet_aml_crypto_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_crypto_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCRYPTO_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //crypto:crypto__testing
-cc_library_static {
-    name: "cronet_aml_crypto_crypto__testing",
-    srcs: [
-        "crypto/aead.cc",
-        "crypto/ec_private_key.cc",
-        "crypto/ec_signature_creator.cc",
-        "crypto/ec_signature_creator_impl.cc",
-        "crypto/encryptor.cc",
-        "crypto/hkdf.cc",
-        "crypto/hmac.cc",
-        "crypto/openssl_util.cc",
-        "crypto/p224_spake.cc",
-        "crypto/random.cc",
-        "crypto/rsa_private_key.cc",
-        "crypto/secure_hash.cc",
-        "crypto/secure_util.cc",
-        "crypto/sha2.cc",
-        "crypto/signature_creator.cc",
-        "crypto/signature_verifier.cc",
-        "crypto/symmetric_key.cc",
-        "crypto/unexportable_key.cc",
-        "crypto/unexportable_key_metrics.cc",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    host_supported: true,
-    generated_headers: [
-        "cronet_aml_crypto_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_crypto_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCRYPTO_IMPLEMENTATION",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-    ],
-    target: {
-        android: {
-            shared_libs: [
-                "libandroid",
-                "liblog",
-            ],
-        },
-        android_arm: {
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        android_arm64: {
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        android_x86: {
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        android_x86_64: {
-            static_libs: [
-                "cronet_aml_third_party_android_ndk_cpu_features__testing",
-                "cronet_aml_third_party_ashmem_ashmem__testing",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            ldflags: [
-                "-Wl,-wrap,asprintf",
-                "-Wl,-wrap,calloc",
-                "-Wl,-wrap,free",
-                "-Wl,-wrap,getcwd",
-                "-Wl,-wrap,malloc",
-                "-Wl,-wrap,malloc_usable_size",
-                "-Wl,-wrap,memalign",
-                "-Wl,-wrap,posix_memalign",
-                "-Wl,-wrap,pvalloc",
-                "-Wl,-wrap,realloc",
-                "-Wl,-wrap,realpath",
-                "-Wl,-wrap,strdup",
-                "-Wl,-wrap,strndup",
-                "-Wl,-wrap,valloc",
-                "-Wl,-wrap,vasprintf",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //gn:default_deps
-cc_defaults {
-    name: "cronet_aml_defaults",
-    cflags: [
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-Wno-ambiguous-reversed-operator",
-        "-Wno-c++11-narrowing",
-        "-Wno-error=return-type",
-        "-Wno-macro-redefined",
-        "-Wno-missing-field-initializers",
-        "-Wno-non-virtual-dtor",
-        "-Wno-null-pointer-subtraction",
-        "-Wno-sign-compare",
-        "-Wno-sign-promo",
-        "-Wno-unreachable-code-loop-increment",
-        "-Wno-unused-parameter",
-        "-fPIC",
-    ],
-    stl: "none",
-    cpp_std: "c++17",
-    apex_available: [
-        "com.android.tethering",
-    ],
-    min_sdk_version: "29",
-    target: {
-        android: {
-            shared_libs: [
-                "libmediandk",
-            ],
-            header_libs: [
-                "jni_headers",
-            ],
-        },
-        host: {
-            cflags: [
-                "-UANDROID",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //gn:java
-java_library {
-    name: "cronet_aml_java",
-    srcs: [
-        ":cronet_aml_base_base_android_java_enums_srcjar",
-        ":cronet_aml_base_java_features_srcjar",
-        ":cronet_aml_base_java_switches_srcjar",
-        ":cronet_aml_build_android_build_config_gen",
-        ":cronet_aml_build_android_native_libraries_gen",
-        ":cronet_aml_components_cronet_android_cronet_jni_registration__java",
-        ":cronet_aml_components_cronet_android_http_cache_type_java",
-        ":cronet_aml_components_cronet_android_implementation_api_version",
-        ":cronet_aml_components_cronet_android_integrated_mode_state",
-        ":cronet_aml_components_cronet_android_interface_api_version",
-        ":cronet_aml_components_cronet_android_load_states_list",
-        ":cronet_aml_components_cronet_android_net_idempotency_java",
-        ":cronet_aml_components_cronet_android_net_request_priority_java",
-        ":cronet_aml_components_cronet_android_network_quality_observation_source_java",
-        ":cronet_aml_components_cronet_android_rtt_throughput_values_java",
-        ":cronet_aml_components_cronet_android_url_request_error_java",
-        ":cronet_aml_net_android_net_android_java_enums_srcjar",
-        ":cronet_aml_net_android_net_errors_java",
-        ":cronet_aml_net_effective_connection_type_java",
-        "base/android/java/src/org/chromium/base/ActivityState.java",
-        "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CallbackController.java",
-        "base/android/java/src/org/chromium/base/CollectionUtil.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
-        "base/android/java/src/org/chromium/base/Consumer.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/ContextUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/Function.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/JniException.java",
-        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-        "base/android/java/src/org/chromium/base/LifetimeAssert.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/Log.java",
-        "base/android/java/src/org/chromium/base/MathUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-        "base/android/java/src/org/chromium/base/ObserverList.java",
-        "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
-        "base/android/java/src/org/chromium/base/PackageUtils.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
-        "base/android/java/src/org/chromium/base/Predicate.java",
-        "base/android/java/src/org/chromium/base/Promise.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/StreamUtil.java",
-        "base/android/java/src/org/chromium/base/StrictModeContext.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimeUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/UnownedUserData.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
-        "base/android/java/src/org/chromium/base/UserData.java",
-        "base/android/java/src/org/chromium/base/UserDataHost.java",
-        "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
-        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
-        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
-        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
-        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
-        "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/library_loader/Linker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
-        "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
-        "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
-        "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
-        "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
-        "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
-        "base/android/java/src/org/chromium/base/process_launcher/IChildProcessService.aidl",
-        "base/android/java/src/org/chromium/base/process_launcher/IParentProcess.aidl",
-        "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/Supplier.java",
-        "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
-        "base/android/java/src/org/chromium/base/task/AsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
-        "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
-        "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraits.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
-        "base/test/android/java/src/org/chromium/base/ITestCallback.aidl",
-        "base/test/android/java/src/org/chromium/base/ITestController.aidl",
-        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
-        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
-        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
-        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
-        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
-        "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
-        "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
-        "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-    ],
-    static_libs: [
-        "modules-utils-build_system",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-    min_sdk_version: "30",
-    libs: [
-        "androidx.annotation_annotation",
-        "androidx.annotation_annotation-experimental-nodeps",
-        "cronet_aml_api_java",
-        "framework-connectivity-t.stubs.module_lib",
-        "framework-connectivity.stubs.module_lib",
-        "framework-mediaprovider.stubs.module_lib",
-        "framework-tethering.stubs.module_lib",
-        "framework-wifi.stubs.module_lib",
-        "jsr305",
-    ],
-    aidl: {
-        include_dirs: [
-            "frameworks/base/core/java/",
-        ],
-        local_include_dirs: [
-            "base/android/java/src",
-            "base/test/android/java/src",
-        ],
-    },
-    plugins: [
-        "cronet_aml_java_jni_annotation_preprocessor",
-    ],
-    sdk_version: "module_current",
-    javacflags: [
-        "-Aorg.chromium.chrome.skipGenJni",
-        "-Apackage_prefix=android.net.http.internal",
-    ],
-}
-
-// GN: //gn:java
-java_library {
-    name: "cronet_aml_java__testing",
-    srcs: [
-        ":cronet_aml_base_base_android_java_enums_srcjar",
-        ":cronet_aml_base_java_features_srcjar",
-        ":cronet_aml_base_java_switches_srcjar",
-        ":cronet_aml_build_android_build_config_gen",
-        ":cronet_aml_build_android_native_libraries_gen",
-        ":cronet_aml_components_cronet_android_cronet_jni_registration__java__testing",
-        ":cronet_aml_components_cronet_android_http_cache_type_java",
-        ":cronet_aml_components_cronet_android_implementation_api_version",
-        ":cronet_aml_components_cronet_android_integrated_mode_state",
-        ":cronet_aml_components_cronet_android_interface_api_version",
-        ":cronet_aml_components_cronet_android_load_states_list",
-        ":cronet_aml_components_cronet_android_net_idempotency_java",
-        ":cronet_aml_components_cronet_android_net_request_priority_java",
-        ":cronet_aml_components_cronet_android_network_quality_observation_source_java",
-        ":cronet_aml_components_cronet_android_rtt_throughput_values_java",
-        ":cronet_aml_components_cronet_android_url_request_error_java",
-        ":cronet_aml_net_android_net_android_java_enums_srcjar",
-        ":cronet_aml_net_android_net_errors_java",
-        ":cronet_aml_net_effective_connection_type_java",
-        "base/android/java/src/org/chromium/base/ActivityState.java",
-        "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
-        "base/android/java/src/org/chromium/base/ApkAssets.java",
-        "base/android/java/src/org/chromium/base/ApplicationStatus.java",
-        "base/android/java/src/org/chromium/base/BaseFeatureList.java",
-        "base/android/java/src/org/chromium/base/BuildInfo.java",
-        "base/android/java/src/org/chromium/base/BundleUtils.java",
-        "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
-        "base/android/java/src/org/chromium/base/Callback.java",
-        "base/android/java/src/org/chromium/base/CallbackController.java",
-        "base/android/java/src/org/chromium/base/CollectionUtil.java",
-        "base/android/java/src/org/chromium/base/CommandLine.java",
-        "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
-        "base/android/java/src/org/chromium/base/Consumer.java",
-        "base/android/java/src/org/chromium/base/ContentUriUtils.java",
-        "base/android/java/src/org/chromium/base/ContextUtils.java",
-        "base/android/java/src/org/chromium/base/CpuFeatures.java",
-        "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
-        "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
-        "base/android/java/src/org/chromium/base/EventLog.java",
-        "base/android/java/src/org/chromium/base/FeatureList.java",
-        "base/android/java/src/org/chromium/base/Features.java",
-        "base/android/java/src/org/chromium/base/FieldTrialList.java",
-        "base/android/java/src/org/chromium/base/FileUtils.java",
-        "base/android/java/src/org/chromium/base/Function.java",
-        "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
-        "base/android/java/src/org/chromium/base/IntStringCallback.java",
-        "base/android/java/src/org/chromium/base/JNIUtils.java",
-        "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
-        "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
-        "base/android/java/src/org/chromium/base/JniException.java",
-        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-        "base/android/java/src/org/chromium/base/LifetimeAssert.java",
-        "base/android/java/src/org/chromium/base/LocaleUtils.java",
-        "base/android/java/src/org/chromium/base/Log.java",
-        "base/android/java/src/org/chromium/base/MathUtils.java",
-        "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
-        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-        "base/android/java/src/org/chromium/base/ObserverList.java",
-        "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
-        "base/android/java/src/org/chromium/base/PackageUtils.java",
-        "base/android/java/src/org/chromium/base/PathService.java",
-        "base/android/java/src/org/chromium/base/PathUtils.java",
-        "base/android/java/src/org/chromium/base/PiiElider.java",
-        "base/android/java/src/org/chromium/base/PowerMonitor.java",
-        "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
-        "base/android/java/src/org/chromium/base/Predicate.java",
-        "base/android/java/src/org/chromium/base/Promise.java",
-        "base/android/java/src/org/chromium/base/RadioUtils.java",
-        "base/android/java/src/org/chromium/base/StreamUtil.java",
-        "base/android/java/src/org/chromium/base/StrictModeContext.java",
-        "base/android/java/src/org/chromium/base/SysUtils.java",
-        "base/android/java/src/org/chromium/base/ThreadUtils.java",
-        "base/android/java/src/org/chromium/base/TimeUtils.java",
-        "base/android/java/src/org/chromium/base/TimezoneUtils.java",
-        "base/android/java/src/org/chromium/base/TraceEvent.java",
-        "base/android/java/src/org/chromium/base/UnguessableToken.java",
-        "base/android/java/src/org/chromium/base/UnownedUserData.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
-        "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
-        "base/android/java/src/org/chromium/base/UserData.java",
-        "base/android/java/src/org/chromium/base/UserDataHost.java",
-        "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
-        "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
-        "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
-        "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
-        "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
-        "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
-        "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
-        "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
-        "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
-        "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
-        "base/android/java/src/org/chromium/base/library_loader/Linker.java",
-        "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
-        "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
-        "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
-        "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
-        "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
-        "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
-        "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
-        "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
-        "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
-        "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
-        "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
-        "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
-        "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
-        "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
-        "base/android/java/src/org/chromium/base/process_launcher/IChildProcessService.aidl",
-        "base/android/java/src/org/chromium/base/process_launcher/IParentProcess.aidl",
-        "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
-        "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
-        "base/android/java/src/org/chromium/base/supplier/Supplier.java",
-        "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
-        "base/android/java/src/org/chromium/base/task/AsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
-        "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
-        "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
-        "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/PostTask.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunner.java",
-        "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraits.java",
-        "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
-        "base/test/android/java/src/org/chromium/base/ITestCallback.aidl",
-        "base/test/android/java/src/org/chromium/base/ITestController.aidl",
-        "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
-        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
-        "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
-        "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
-        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-        "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
-        "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
-        "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
-        "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
-        "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
-        "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
-        "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
-        "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-    ],
-    static_libs: [
-        "modules-utils-build_system",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-    min_sdk_version: "30",
-    libs: [
-        "androidx.annotation_annotation",
-        "androidx.annotation_annotation-experimental-nodeps",
-        "cronet_aml_api_java",
-        "framework-connectivity-t.stubs.module_lib",
-        "framework-connectivity.stubs.module_lib",
-        "framework-mediaprovider.stubs.module_lib",
-        "framework-tethering.stubs.module_lib",
-        "framework-wifi.stubs.module_lib",
-        "jsr305",
-    ],
-    aidl: {
-        include_dirs: [
-            "frameworks/base/core/java/",
-        ],
-        local_include_dirs: [
-            "base/android/java/src",
-            "base/test/android/java/src",
-        ],
-    },
-    plugins: [
-        "cronet_aml_java_jni_annotation_preprocessor",
-    ],
-    sdk_version: "module_current",
-    javacflags: [
-        "-Aorg.chromium.chrome.skipGenJni",
-    ],
-}
-
-// GN: //base/android/jni_generator:jni_processor
-java_plugin {
-    name: "cronet_aml_java_jni_annotation_preprocessor",
-    srcs: [
-        ":cronet_aml_build_android_build_config_gen",
-        "base/android/java/src/org/chromium/base/JniException.java",
-        "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-        "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-        "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-        "base/android/jni_generator/java/src/org/chromium/jni_generator/JniProcessor.java",
-        "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-        "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-    ],
-    static_libs: [
-        "auto_service_annotations",
-        "guava",
-        "javapoet",
-    ],
-    processor_class: "org.chromium.jni_generator.JniProcessor",
-}
-
-// GN: //net/android:net_android_java_enums_srcjar
-java_genrule {
-    name: "cronet_aml_net_android_net_android_java_enums_srcjar",
-    srcs: [
-        "net/android/network_change_notifier_android.cc",
-        "net/android/traffic_stats.cc",
-        "net/socket/socket_tag.cc",
-    ],
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location net/base/network_change_notifier.h) " +
-         "$(location net/socket/socket_tag.cc) " +
-         "$(location net/android/cert_verify_result_android.h) " +
-         "$(location net/android/keystore.h) " +
-         "$(location net/android/network_change_notifier_android.cc) " +
-         "$(location net/android/traffic_stats.cc)",
-    out: [
-        "net/android/net_android_java_enums_srcjar.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "net/android/cert_verify_result_android.h",
-        "net/android/keystore.h",
-        "net/base/network_change_notifier.h",
-    ],
-}
-
-// GN: //net/android:net_errors_java
-genrule {
-    name: "cronet_aml_net_android_net_errors_java",
-    srcs: [
-        ":cronet_aml_net_android_net_errors_java_preprocess",
-    ],
-    tools: [
-        "soong_zip",
-    ],
-    cmd: "cp $(in) $(genDir)/NetError.java && " +
-         "$(location soong_zip) -o $(out) -srcjar -C $(genDir) -f $(genDir)/NetError.java",
-    out: [
-        "NetError.srcjar",
-    ],
-}
-
-// GN: //net/android:net_errors_java
-cc_object {
-    name: "cronet_aml_net_android_net_errors_java_preprocess",
-    srcs: [
-        ":cronet_aml_net_android_net_errors_java_rename",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-E",
-        "-P",
-    ],
-    compile_multilib: "first",
-}
-
-// GN: //net/android:net_errors_java
-genrule {
-    name: "cronet_aml_net_android_net_errors_java_rename",
-    srcs: [
-        "net/android/java/NetError.template",
-    ],
-    cmd: "cp $(in) $(out)",
-    out: [
-        "NetError.cc",
-    ],
-}
-
-// GN: //net/base/registry_controlled_domains:registry_controlled_domains
-cc_genrule {
-    name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains",
-    cmd: "$(location net/tools/dafsa/make_dafsa.py) --reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc)",
-    out: [
-        "net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc",
-    ],
-    tool_files: [
-        "net/base/registry_controlled_domains/effective_tld_names.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
-        "net/tools/dafsa/make_dafsa.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/base/registry_controlled_domains:registry_controlled_domains__testing
-cc_genrule {
-    name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__testing",
-    cmd: "$(location net/tools/dafsa/make_dafsa.py) --reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc) " +
-         "&& python3 $(location net/tools/dafsa/make_dafsa.py) " +
-         "--reverse " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf) " +
-         "$(location net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc)",
-    out: [
-        "net/base/registry_controlled_domains/effective_tld_names-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest1-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest2-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest3-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest4-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest5-reversed-inc.cc",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest6-reversed-inc.cc",
-    ],
-    tool_files: [
-        "net/base/registry_controlled_domains/effective_tld_names.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest2.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest3.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest4.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest5.gperf",
-        "net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
-        "net/tools/dafsa/make_dafsa.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:buildflags
-cc_genrule {
-    name: "cronet_aml_net_buildflags",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"false\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    out: [
-        "net/net_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:buildflags__testing
-cc_genrule {
-    name: "cronet_aml_net_buildflags__testing",
-    cmd: "if [[ ( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'x86' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"false\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi; " +
-         "if [[ ( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' ) ]]; " +
-         "then " +
-         "echo '--flags POSIX_BYPASS_MMAP=\"true\" DISABLE_FILE_SUPPORT=\"true\" ENABLE_MDNS=\"false\" ENABLE_REPORTING=\"true\" ENABLE_WEBSOCKETS=\"false\" INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST=\"false\" USE_KERBEROS=\"true\" USE_EXTERNAL_GSSAPI=\"false\" TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED=\"false\" CHROME_ROOT_STORE_SUPPORTED=\"false\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin; " +
-         "fi;",
-    out: [
-        "net/net_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/dns:dns
-cc_library_static {
-    name: "cronet_aml_net_dns_dns",
-    srcs: [
-        "net/dns/address_info.cc",
-        "net/dns/address_sorter_posix.cc",
-        "net/dns/context_host_resolver.cc",
-        "net/dns/dns_alias_utility.cc",
-        "net/dns/dns_client.cc",
-        "net/dns/dns_config.cc",
-        "net/dns/dns_config_service.cc",
-        "net/dns/dns_config_service_android.cc",
-        "net/dns/dns_hosts.cc",
-        "net/dns/dns_query.cc",
-        "net/dns/dns_reloader.cc",
-        "net/dns/dns_response.cc",
-        "net/dns/dns_response_result_extractor.cc",
-        "net/dns/dns_server_iterator.cc",
-        "net/dns/dns_session.cc",
-        "net/dns/dns_transaction.cc",
-        "net/dns/dns_udp_tracker.cc",
-        "net/dns/dns_util.cc",
-        "net/dns/host_cache.cc",
-        "net/dns/host_resolver.cc",
-        "net/dns/host_resolver_manager.cc",
-        "net/dns/host_resolver_mdns_listener_impl.cc",
-        "net/dns/host_resolver_mdns_task.cc",
-        "net/dns/host_resolver_nat64_task.cc",
-        "net/dns/host_resolver_proc.cc",
-        "net/dns/host_resolver_system_task.cc",
-        "net/dns/https_record_rdata.cc",
-        "net/dns/httpssvc_metrics.cc",
-        "net/dns/mapped_host_resolver.cc",
-        "net/dns/nsswitch_reader.cc",
-        "net/dns/opt_record_rdata.cc",
-        "net/dns/record_parsed.cc",
-        "net/dns/record_rdata.cc",
-        "net/dns/resolve_context.cc",
-        "net/dns/serial_worker.cc",
-        "net/dns/system_dns_config_change_notifier.cc",
-        "net/dns/test_dns_config_service.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_dns_public_public",
-        "cronet_aml_net_net_deps",
-        "cronet_aml_net_net_public_deps",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/dns:dns__testing
-cc_library_static {
-    name: "cronet_aml_net_dns_dns__testing",
-    srcs: [
-        "net/dns/address_info.cc",
-        "net/dns/address_sorter_posix.cc",
-        "net/dns/context_host_resolver.cc",
-        "net/dns/dns_alias_utility.cc",
-        "net/dns/dns_client.cc",
-        "net/dns/dns_config.cc",
-        "net/dns/dns_config_service.cc",
-        "net/dns/dns_config_service_android.cc",
-        "net/dns/dns_hosts.cc",
-        "net/dns/dns_query.cc",
-        "net/dns/dns_reloader.cc",
-        "net/dns/dns_response.cc",
-        "net/dns/dns_response_result_extractor.cc",
-        "net/dns/dns_server_iterator.cc",
-        "net/dns/dns_session.cc",
-        "net/dns/dns_transaction.cc",
-        "net/dns/dns_udp_tracker.cc",
-        "net/dns/dns_util.cc",
-        "net/dns/host_cache.cc",
-        "net/dns/host_resolver.cc",
-        "net/dns/host_resolver_manager.cc",
-        "net/dns/host_resolver_mdns_listener_impl.cc",
-        "net/dns/host_resolver_mdns_task.cc",
-        "net/dns/host_resolver_nat64_task.cc",
-        "net/dns/host_resolver_proc.cc",
-        "net/dns/host_resolver_system_task.cc",
-        "net/dns/https_record_rdata.cc",
-        "net/dns/httpssvc_metrics.cc",
-        "net/dns/mapped_host_resolver.cc",
-        "net/dns/nsswitch_reader.cc",
-        "net/dns/opt_record_rdata.cc",
-        "net/dns/record_parsed.cc",
-        "net/dns/record_rdata.cc",
-        "net/dns/resolve_context.cc",
-        "net/dns/serial_worker.cc",
-        "net/dns/system_dns_config_change_notifier.cc",
-        "net/dns/test_dns_config_service.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/dns/public:public
-cc_library_static {
-    name: "cronet_aml_net_dns_public_public",
-    srcs: [
-        "net/dns/public/dns_config_overrides.cc",
-        "net/dns/public/dns_over_https_config.cc",
-        "net/dns/public/dns_over_https_server_config.cc",
-        "net/dns/public/dns_query_type.cc",
-        "net/dns/public/doh_provider_entry.cc",
-        "net/dns/public/host_resolver_results.cc",
-        "net/dns/public/resolve_error_info.cc",
-        "net/dns/public/util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_net_deps",
-        "cronet_aml_net_net_public_deps",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/dns/public:public__testing
-cc_library_static {
-    name: "cronet_aml_net_dns_public_public__testing",
-    srcs: [
-        "net/dns/public/dns_config_overrides.cc",
-        "net/dns/public/dns_over_https_config.cc",
-        "net/dns/public/dns_over_https_server_config.cc",
-        "net/dns/public/dns_query_type.cc",
-        "net/dns/public/doh_provider_entry.cc",
-        "net/dns/public/host_resolver_results.cc",
-        "net/dns/public/resolve_error_info.cc",
-        "net/dns/public/util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/dns:test_support__testing
-cc_library_static {
-    name: "cronet_aml_net_dns_test_support__testing",
-    srcs: [
-        "net/dns/dns_test_util.cc",
-        "net/dns/host_resolver_results_test_util.cc",
-        "net/dns/mock_host_resolver.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:effective_connection_type_java
-java_genrule {
-    name: "cronet_aml_net_effective_connection_type_java",
-    cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
-         "$(out) " +
-         "$(location net/nqe/effective_connection_type.h)",
-    out: [
-        "net/effective_connection_type_java.srcjar",
-    ],
-    tool_files: [
-        "build/android/gyp/java_cpp_enum.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/android/gyp/util/java_cpp_utils.py",
-        "build/gn_helpers.py",
-        "net/nqe/effective_connection_type.h",
-    ],
-}
-
-// GN: //net:gtest_util__testing
-cc_library_static {
-    name: "cronet_aml_net_gtest_util__testing",
-    srcs: [
-        "net/test/scoped_disable_exit_on_dfatal.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_test_test_support__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/http:transport_security_state_generated_files
-cc_library_static {
-    name: "cronet_aml_net_http_transport_security_state_generated_files",
-    srcs: [
-        "net/http/transport_security_state.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_dns_dns",
-        "cronet_aml_net_dns_public_public",
-        "cronet_aml_net_net_deps",
-        "cronet_aml_net_net_public_deps",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    generated_headers: [
-        "cronet_aml_build_branding_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_branding_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/http:transport_security_state_generated_files__testing
-cc_library_static {
-    name: "cronet_aml_net_http_transport_security_state_generated_files__testing",
-    srcs: [
-        "net/http/transport_security_state.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_build_branding_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_branding_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/http:transport_security_state_unittest_data_default__testing
-cc_genrule {
-    name: "cronet_aml_net_http_transport_security_state_unittest_data_default__testing",
-    tools: [
-        "cronet_aml_net_tools_transport_security_state_generator_transport_security_state_generator__testing",
-    ],
-    cmd: "$(location cronet_aml_net_tools_transport_security_state_generator_transport_security_state_generator__testing) " +
-         "$(location net/http/transport_security_state_static_unittest_default.json) " +
-         "$(location net/http/transport_security_state_static_unittest_default.pins) " +
-         "$(location net/http/transport_security_state_static_unittest.template) " +
-         "$(location net/http/transport_security_state_static_unittest_default.h)",
-    out: [
-        "net/http/transport_security_state_static_unittest_default.h",
-    ],
-    tool_files: [
-        "build/gn_run_binary.py",
-        "net/http/transport_security_state_static_unittest.template",
-        "net/http/transport_security_state_static_unittest_default.json",
-        "net/http/transport_security_state_static_unittest_default.pins",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:ios_cronet_buildflags
-cc_genrule {
-    name: "cronet_aml_net_ios_cronet_buildflags",
-    cmd: "echo '--flags CRONET_BUILD=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:ios_cronet_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "net/socket/ios_cronet_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:ios_cronet_buildflags__testing
-cc_genrule {
-    name: "cronet_aml_net_ios_cronet_buildflags__testing",
-    cmd: "echo '--flags CRONET_BUILD=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//net:ios_cronet_buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "net/socket/ios_cronet_buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:isolation_info_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_isolation_info_proto__testing_gen",
-    srcs: [
-        "net/base/isolation_info.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/base --cpp_out=lite=true:$(genDir)/external/cronet/net/base/ $(in)",
-    out: [
-        "external/cronet/net/base/isolation_info.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:isolation_info_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_isolation_info_proto__testing_gen_headers",
-    srcs: [
-        "net/base/isolation_info.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/base --cpp_out=lite=true:$(genDir)/external/cronet/net/base/ $(in)",
-    out: [
-        "external/cronet/net/base/isolation_info.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/base",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:isolation_info_proto
-cc_genrule {
-    name: "cronet_aml_net_isolation_info_proto_gen",
-    srcs: [
-        "net/base/isolation_info.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/base --cpp_out=lite=true:$(genDir)/external/cronet/net/base/ $(in)",
-    out: [
-        "external/cronet/net/base/isolation_info.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:isolation_info_proto
-cc_genrule {
-    name: "cronet_aml_net_isolation_info_proto_gen_headers",
-    srcs: [
-        "net/base/isolation_info.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/base --cpp_out=lite=true:$(genDir)/external/cronet/net/base/ $(in)",
-    out: [
-        "external/cronet/net/base/isolation_info.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/base",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:net
-cc_library_static {
-    name: "cronet_aml_net_net",
-    srcs: [
-        "net/android/android_http_util.cc",
-        "net/android/cert_verify_result_android.cc",
-        "net/android/gurl_utils.cc",
-        "net/android/http_auth_negotiate_android.cc",
-        "net/android/keystore.cc",
-        "net/android/network_change_notifier_android.cc",
-        "net/android/network_change_notifier_delegate_android.cc",
-        "net/android/network_change_notifier_factory_android.cc",
-        "net/android/network_library.cc",
-        "net/android/radio_activity_tracker.cc",
-        "net/android/traffic_stats.cc",
-        "net/base/address_family.cc",
-        "net/base/address_list.cc",
-        "net/base/address_tracker_linux.cc",
-        "net/base/auth.cc",
-        "net/base/backoff_entry.cc",
-        "net/base/backoff_entry_serializer.cc",
-        "net/base/cache_metrics.cc",
-        "net/base/chunked_upload_data_stream.cc",
-        "net/base/connection_endpoint_metadata.cc",
-        "net/base/data_url.cc",
-        "net/base/datagram_buffer.cc",
-        "net/base/elements_upload_data_stream.cc",
-        "net/base/features.cc",
-        "net/base/file_stream.cc",
-        "net/base/file_stream_context.cc",
-        "net/base/file_stream_context_posix.cc",
-        "net/base/filename_util.cc",
-        "net/base/filename_util_internal.cc",
-        "net/base/hash_value.cc",
-        "net/base/hex_utils.cc",
-        "net/base/host_mapping_rules.cc",
-        "net/base/host_port_pair.cc",
-        "net/base/io_buffer.cc",
-        "net/base/ip_address.cc",
-        "net/base/ip_endpoint.cc",
-        "net/base/isolation_info.cc",
-        "net/base/load_timing_info.cc",
-        "net/base/logging_network_change_observer.cc",
-        "net/base/lookup_string_in_fixed_set.cc",
-        "net/base/mime_sniffer.cc",
-        "net/base/mime_util.cc",
-        "net/base/net_errors.cc",
-        "net/base/net_errors_posix.cc",
-        "net/base/net_module.cc",
-        "net/base/net_string_util_icu_alternatives_android.cc",
-        "net/base/network_activity_monitor.cc",
-        "net/base/network_anonymization_key.cc",
-        "net/base/network_change_notifier.cc",
-        "net/base/network_change_notifier_posix.cc",
-        "net/base/network_delegate.cc",
-        "net/base/network_delegate_impl.cc",
-        "net/base/network_interfaces.cc",
-        "net/base/network_interfaces_getifaddrs.cc",
-        "net/base/network_interfaces_getifaddrs_android.cc",
-        "net/base/network_interfaces_linux.cc",
-        "net/base/network_interfaces_posix.cc",
-        "net/base/network_isolation_key.cc",
-        "net/base/parse_number.cc",
-        "net/base/platform_mime_util_linux.cc",
-        "net/base/port_util.cc",
-        "net/base/prioritized_dispatcher.cc",
-        "net/base/prioritized_task_runner.cc",
-        "net/base/privacy_mode.cc",
-        "net/base/proxy_server.cc",
-        "net/base/proxy_string_util.cc",
-        "net/base/registry_controlled_domains/registry_controlled_domain.cc",
-        "net/base/request_priority.cc",
-        "net/base/scheme_host_port_matcher.cc",
-        "net/base/scheme_host_port_matcher_rule.cc",
-        "net/base/schemeful_site.cc",
-        "net/base/sockaddr_storage.cc",
-        "net/base/sockaddr_util_posix.cc",
-        "net/base/transport_info.cc",
-        "net/base/upload_bytes_element_reader.cc",
-        "net/base/upload_data_stream.cc",
-        "net/base/upload_element_reader.cc",
-        "net/base/upload_file_element_reader.cc",
-        "net/base/url_util.cc",
-        "net/cert/asn1_util.cc",
-        "net/cert/caching_cert_verifier.cc",
-        "net/cert/cert_and_ct_verifier.cc",
-        "net/cert/cert_database.cc",
-        "net/cert/cert_status_flags.cc",
-        "net/cert/cert_verifier.cc",
-        "net/cert/cert_verify_proc.cc",
-        "net/cert/cert_verify_proc_android.cc",
-        "net/cert/cert_verify_proc_builtin.cc",
-        "net/cert/cert_verify_result.cc",
-        "net/cert/coalescing_cert_verifier.cc",
-        "net/cert/crl_set.cc",
-        "net/cert/ct_log_response_parser.cc",
-        "net/cert/ct_log_verifier.cc",
-        "net/cert/ct_log_verifier_util.cc",
-        "net/cert/ct_objects_extractor.cc",
-        "net/cert/ct_policy_enforcer.cc",
-        "net/cert/ct_sct_to_string.cc",
-        "net/cert/ct_serialization.cc",
-        "net/cert/ct_signed_certificate_timestamp_log_param.cc",
-        "net/cert/do_nothing_ct_verifier.cc",
-        "net/cert/ev_root_ca_metadata.cc",
-        "net/cert/internal/cert_issuer_source_aia.cc",
-        "net/cert/internal/revocation_checker.cc",
-        "net/cert/internal/system_trust_store.cc",
-        "net/cert/known_roots.cc",
-        "net/cert/merkle_audit_proof.cc",
-        "net/cert/merkle_consistency_proof.cc",
-        "net/cert/merkle_tree_leaf.cc",
-        "net/cert/multi_log_ct_verifier.cc",
-        "net/cert/multi_threaded_cert_verifier.cc",
-        "net/cert/ocsp_verify_result.cc",
-        "net/cert/pem.cc",
-        "net/cert/pki/cert_error_id.cc",
-        "net/cert/pki/cert_error_params.cc",
-        "net/cert/pki/cert_errors.cc",
-        "net/cert/pki/cert_issuer_source_static.cc",
-        "net/cert/pki/certificate_policies.cc",
-        "net/cert/pki/common_cert_errors.cc",
-        "net/cert/pki/crl.cc",
-        "net/cert/pki/extended_key_usage.cc",
-        "net/cert/pki/general_names.cc",
-        "net/cert/pki/name_constraints.cc",
-        "net/cert/pki/ocsp.cc",
-        "net/cert/pki/parse_certificate.cc",
-        "net/cert/pki/parse_name.cc",
-        "net/cert/pki/parsed_certificate.cc",
-        "net/cert/pki/path_builder.cc",
-        "net/cert/pki/revocation_util.cc",
-        "net/cert/pki/signature_algorithm.cc",
-        "net/cert/pki/simple_path_builder_delegate.cc",
-        "net/cert/pki/string_util.cc",
-        "net/cert/pki/trust_store.cc",
-        "net/cert/pki/trust_store_collection.cc",
-        "net/cert/pki/trust_store_in_memory.cc",
-        "net/cert/pki/verify_certificate_chain.cc",
-        "net/cert/pki/verify_name_match.cc",
-        "net/cert/pki/verify_signed_data.cc",
-        "net/cert/sct_status_flags.cc",
-        "net/cert/signed_certificate_timestamp.cc",
-        "net/cert/signed_certificate_timestamp_and_status.cc",
-        "net/cert/signed_tree_head.cc",
-        "net/cert/symantec_certs.cc",
-        "net/cert/test_root_certs.cc",
-        "net/cert/test_root_certs_android.cc",
-        "net/cert/trial_comparison_cert_verifier_util.cc",
-        "net/cert/x509_cert_types.cc",
-        "net/cert/x509_certificate.cc",
-        "net/cert/x509_certificate_net_log_param.cc",
-        "net/cert/x509_util.cc",
-        "net/cert/x509_util_android.cc",
-        "net/cert_net/cert_net_fetcher_url_request.cc",
-        "net/cookies/canonical_cookie.cc",
-        "net/cookies/cookie_access_delegate.cc",
-        "net/cookies/cookie_access_result.cc",
-        "net/cookies/cookie_change_dispatcher.cc",
-        "net/cookies/cookie_constants.cc",
-        "net/cookies/cookie_deletion_info.cc",
-        "net/cookies/cookie_inclusion_status.cc",
-        "net/cookies/cookie_monster.cc",
-        "net/cookies/cookie_monster_change_dispatcher.cc",
-        "net/cookies/cookie_monster_netlog_params.cc",
-        "net/cookies/cookie_options.cc",
-        "net/cookies/cookie_partition_key.cc",
-        "net/cookies/cookie_partition_key_collection.cc",
-        "net/cookies/cookie_store.cc",
-        "net/cookies/cookie_util.cc",
-        "net/cookies/parsed_cookie.cc",
-        "net/cookies/site_for_cookies.cc",
-        "net/cookies/static_cookie_policy.cc",
-        "net/der/encode_values.cc",
-        "net/der/input.cc",
-        "net/der/parse_values.cc",
-        "net/der/parser.cc",
-        "net/der/tag.cc",
-        "net/disk_cache/backend_cleanup_tracker.cc",
-        "net/disk_cache/blockfile/addr.cc",
-        "net/disk_cache/blockfile/backend_impl.cc",
-        "net/disk_cache/blockfile/bitmap.cc",
-        "net/disk_cache/blockfile/block_files.cc",
-        "net/disk_cache/blockfile/disk_format.cc",
-        "net/disk_cache/blockfile/entry_impl.cc",
-        "net/disk_cache/blockfile/eviction.cc",
-        "net/disk_cache/blockfile/file.cc",
-        "net/disk_cache/blockfile/file_lock.cc",
-        "net/disk_cache/blockfile/file_posix.cc",
-        "net/disk_cache/blockfile/in_flight_backend_io.cc",
-        "net/disk_cache/blockfile/in_flight_io.cc",
-        "net/disk_cache/blockfile/mapped_file.cc",
-        "net/disk_cache/blockfile/rankings.cc",
-        "net/disk_cache/blockfile/sparse_control.cc",
-        "net/disk_cache/blockfile/stats.cc",
-        "net/disk_cache/cache_util.cc",
-        "net/disk_cache/cache_util_posix.cc",
-        "net/disk_cache/disk_cache.cc",
-        "net/disk_cache/memory/mem_backend_impl.cc",
-        "net/disk_cache/memory/mem_entry_impl.cc",
-        "net/disk_cache/net_log_parameters.cc",
-        "net/disk_cache/simple/post_doom_waiter.cc",
-        "net/disk_cache/simple/simple_backend_impl.cc",
-        "net/disk_cache/simple/simple_entry_format.cc",
-        "net/disk_cache/simple/simple_entry_impl.cc",
-        "net/disk_cache/simple/simple_entry_operation.cc",
-        "net/disk_cache/simple/simple_file_enumerator.cc",
-        "net/disk_cache/simple/simple_file_tracker.cc",
-        "net/disk_cache/simple/simple_index.cc",
-        "net/disk_cache/simple/simple_index_file.cc",
-        "net/disk_cache/simple/simple_net_log_parameters.cc",
-        "net/disk_cache/simple/simple_synchronous_entry.cc",
-        "net/disk_cache/simple/simple_util.cc",
-        "net/disk_cache/simple/simple_util_posix.cc",
-        "net/disk_cache/simple/simple_version_upgrade.cc",
-        "net/filter/brotli_source_stream.cc",
-        "net/filter/filter_source_stream.cc",
-        "net/filter/gzip_header.cc",
-        "net/filter/gzip_source_stream.cc",
-        "net/filter/source_stream.cc",
-        "net/first_party_sets/addition_overlaps_union_find.cc",
-        "net/first_party_sets/first_party_set_entry.cc",
-        "net/first_party_sets/first_party_set_metadata.cc",
-        "net/first_party_sets/first_party_sets_cache_filter.cc",
-        "net/first_party_sets/first_party_sets_context_config.cc",
-        "net/first_party_sets/global_first_party_sets.cc",
-        "net/first_party_sets/same_party_context.cc",
-        "net/http/alternative_service.cc",
-        "net/http/bidirectional_stream.cc",
-        "net/http/bidirectional_stream_impl.cc",
-        "net/http/bidirectional_stream_request_info.cc",
-        "net/http/broken_alternative_services.cc",
-        "net/http/http_auth.cc",
-        "net/http/http_auth_cache.cc",
-        "net/http/http_auth_challenge_tokenizer.cc",
-        "net/http/http_auth_controller.cc",
-        "net/http/http_auth_filter.cc",
-        "net/http/http_auth_handler.cc",
-        "net/http/http_auth_handler_basic.cc",
-        "net/http/http_auth_handler_digest.cc",
-        "net/http/http_auth_handler_factory.cc",
-        "net/http/http_auth_handler_negotiate.cc",
-        "net/http/http_auth_handler_ntlm.cc",
-        "net/http/http_auth_handler_ntlm_portable.cc",
-        "net/http/http_auth_multi_round_parse.cc",
-        "net/http/http_auth_ntlm_mechanism.cc",
-        "net/http/http_auth_preferences.cc",
-        "net/http/http_auth_scheme.cc",
-        "net/http/http_basic_state.cc",
-        "net/http/http_basic_stream.cc",
-        "net/http/http_byte_range.cc",
-        "net/http/http_cache.cc",
-        "net/http/http_cache_lookup_manager.cc",
-        "net/http/http_cache_transaction.cc",
-        "net/http/http_cache_writers.cc",
-        "net/http/http_chunked_decoder.cc",
-        "net/http/http_content_disposition.cc",
-        "net/http/http_log_util.cc",
-        "net/http/http_network_layer.cc",
-        "net/http/http_network_session.cc",
-        "net/http/http_network_session_peer.cc",
-        "net/http/http_network_transaction.cc",
-        "net/http/http_proxy_client_socket.cc",
-        "net/http/http_proxy_connect_job.cc",
-        "net/http/http_raw_request_headers.cc",
-        "net/http/http_request_headers.cc",
-        "net/http/http_request_info.cc",
-        "net/http/http_response_body_drainer.cc",
-        "net/http/http_response_headers.cc",
-        "net/http/http_response_info.cc",
-        "net/http/http_security_headers.cc",
-        "net/http/http_server_properties.cc",
-        "net/http/http_server_properties_manager.cc",
-        "net/http/http_status_code.cc",
-        "net/http/http_stream_factory.cc",
-        "net/http/http_stream_factory_job.cc",
-        "net/http/http_stream_factory_job_controller.cc",
-        "net/http/http_stream_parser.cc",
-        "net/http/http_stream_request.cc",
-        "net/http/http_util.cc",
-        "net/http/http_vary_data.cc",
-        "net/http/partial_data.cc",
-        "net/http/proxy_client_socket.cc",
-        "net/http/proxy_fallback.cc",
-        "net/http/transport_security_persister.cc",
-        "net/http/transport_security_state_source.cc",
-        "net/http/url_security_manager.cc",
-        "net/http/url_security_manager_posix.cc",
-        "net/http/webfonts_histogram.cc",
-        "net/log/file_net_log_observer.cc",
-        "net/log/net_log.cc",
-        "net/log/net_log_capture_mode.cc",
-        "net/log/net_log_entry.cc",
-        "net/log/net_log_event_type.cc",
-        "net/log/net_log_source.cc",
-        "net/log/net_log_util.cc",
-        "net/log/net_log_values.cc",
-        "net/log/net_log_with_source.cc",
-        "net/log/trace_net_log_observer.cc",
-        "net/network_error_logging/network_error_logging_service.cc",
-        "net/nqe/cached_network_quality.cc",
-        "net/nqe/effective_connection_type.cc",
-        "net/nqe/event_creator.cc",
-        "net/nqe/network_id.cc",
-        "net/nqe/network_qualities_prefs_manager.cc",
-        "net/nqe/network_quality.cc",
-        "net/nqe/network_quality_estimator.cc",
-        "net/nqe/network_quality_estimator_params.cc",
-        "net/nqe/network_quality_estimator_util.cc",
-        "net/nqe/network_quality_observation.cc",
-        "net/nqe/network_quality_store.cc",
-        "net/nqe/observation_buffer.cc",
-        "net/nqe/pref_names.cc",
-        "net/nqe/socket_watcher.cc",
-        "net/nqe/socket_watcher_factory.cc",
-        "net/nqe/throughput_analyzer.cc",
-        "net/ntlm/ntlm.cc",
-        "net/ntlm/ntlm_buffer_reader.cc",
-        "net/ntlm/ntlm_buffer_writer.cc",
-        "net/ntlm/ntlm_client.cc",
-        "net/ntlm/ntlm_constants.cc",
-        "net/proxy_resolution/configured_proxy_resolution_request.cc",
-        "net/proxy_resolution/configured_proxy_resolution_service.cc",
-        "net/proxy_resolution/dhcp_pac_file_fetcher.cc",
-        "net/proxy_resolution/multi_threaded_proxy_resolver.cc",
-        "net/proxy_resolution/network_delegate_error_observer.cc",
-        "net/proxy_resolution/pac_file_data.cc",
-        "net/proxy_resolution/pac_file_decider.cc",
-        "net/proxy_resolution/pac_file_fetcher.cc",
-        "net/proxy_resolution/pac_file_fetcher_impl.cc",
-        "net/proxy_resolution/polling_proxy_config_service.cc",
-        "net/proxy_resolution/proxy_bypass_rules.cc",
-        "net/proxy_resolution/proxy_config.cc",
-        "net/proxy_resolution/proxy_config_service.cc",
-        "net/proxy_resolution/proxy_config_service_android.cc",
-        "net/proxy_resolution/proxy_config_service_fixed.cc",
-        "net/proxy_resolution/proxy_config_with_annotation.cc",
-        "net/proxy_resolution/proxy_info.cc",
-        "net/proxy_resolution/proxy_list.cc",
-        "net/proxy_resolution/proxy_resolver_factory.cc",
-        "net/quic/bidirectional_stream_quic_impl.cc",
-        "net/quic/crypto/proof_source_chromium.cc",
-        "net/quic/crypto/proof_verifier_chromium.cc",
-        "net/quic/dedicated_web_transport_http3_client.cc",
-        "net/quic/network_connection.cc",
-        "net/quic/platform/impl/quic_chromium_clock.cc",
-        "net/quic/properties_based_quic_server_info.cc",
-        "net/quic/quic_address_mismatch.cc",
-        "net/quic/quic_chromium_alarm_factory.cc",
-        "net/quic/quic_chromium_client_session.cc",
-        "net/quic/quic_chromium_client_stream.cc",
-        "net/quic/quic_chromium_connection_helper.cc",
-        "net/quic/quic_chromium_packet_reader.cc",
-        "net/quic/quic_chromium_packet_writer.cc",
-        "net/quic/quic_clock_skew_detector.cc",
-        "net/quic/quic_connection_logger.cc",
-        "net/quic/quic_connectivity_monitor.cc",
-        "net/quic/quic_context.cc",
-        "net/quic/quic_crypto_client_config_handle.cc",
-        "net/quic/quic_crypto_client_stream_factory.cc",
-        "net/quic/quic_event_logger.cc",
-        "net/quic/quic_http3_logger.cc",
-        "net/quic/quic_http_stream.cc",
-        "net/quic/quic_http_utils.cc",
-        "net/quic/quic_proxy_client_socket.cc",
-        "net/quic/quic_server_info.cc",
-        "net/quic/quic_session_key.cc",
-        "net/quic/quic_stream_factory.cc",
-        "net/quic/set_quic_flag.cc",
-        "net/quic/web_transport_client.cc",
-        "net/quic/web_transport_error.cc",
-        "net/reporting/reporting_browsing_data_remover.cc",
-        "net/reporting/reporting_cache.cc",
-        "net/reporting/reporting_cache_impl.cc",
-        "net/reporting/reporting_cache_observer.cc",
-        "net/reporting/reporting_context.cc",
-        "net/reporting/reporting_delegate.cc",
-        "net/reporting/reporting_delivery_agent.cc",
-        "net/reporting/reporting_endpoint.cc",
-        "net/reporting/reporting_endpoint_manager.cc",
-        "net/reporting/reporting_garbage_collector.cc",
-        "net/reporting/reporting_header_parser.cc",
-        "net/reporting/reporting_network_change_observer.cc",
-        "net/reporting/reporting_policy.cc",
-        "net/reporting/reporting_report.cc",
-        "net/reporting/reporting_service.cc",
-        "net/reporting/reporting_uploader.cc",
-        "net/socket/client_socket_factory.cc",
-        "net/socket/client_socket_handle.cc",
-        "net/socket/client_socket_pool.cc",
-        "net/socket/client_socket_pool_manager.cc",
-        "net/socket/client_socket_pool_manager_impl.cc",
-        "net/socket/connect_job.cc",
-        "net/socket/connect_job_factory.cc",
-        "net/socket/network_binding_client_socket_factory.cc",
-        "net/socket/next_proto.cc",
-        "net/socket/server_socket.cc",
-        "net/socket/socket.cc",
-        "net/socket/socket_bio_adapter.cc",
-        "net/socket/socket_descriptor.cc",
-        "net/socket/socket_net_log_params.cc",
-        "net/socket/socket_options.cc",
-        "net/socket/socket_posix.cc",
-        "net/socket/socket_tag.cc",
-        "net/socket/socks5_client_socket.cc",
-        "net/socket/socks_client_socket.cc",
-        "net/socket/socks_connect_job.cc",
-        "net/socket/ssl_client_socket.cc",
-        "net/socket/ssl_client_socket_impl.cc",
-        "net/socket/ssl_connect_job.cc",
-        "net/socket/ssl_server_socket_impl.cc",
-        "net/socket/stream_socket.cc",
-        "net/socket/tcp_client_socket.cc",
-        "net/socket/tcp_server_socket.cc",
-        "net/socket/tcp_socket_posix.cc",
-        "net/socket/transport_client_socket.cc",
-        "net/socket/transport_client_socket_pool.cc",
-        "net/socket/transport_connect_job.cc",
-        "net/socket/transport_connect_sub_job.cc",
-        "net/socket/udp_client_socket.cc",
-        "net/socket/udp_net_log_parameters.cc",
-        "net/socket/udp_server_socket.cc",
-        "net/socket/udp_socket_global_limits.cc",
-        "net/socket/udp_socket_posix.cc",
-        "net/socket/unix_domain_client_socket_posix.cc",
-        "net/socket/unix_domain_server_socket_posix.cc",
-        "net/socket/websocket_endpoint_lock_manager.cc",
-        "net/socket/websocket_transport_client_socket_pool.cc",
-        "net/spdy/alps_decoder.cc",
-        "net/spdy/bidirectional_stream_spdy_impl.cc",
-        "net/spdy/buffered_spdy_framer.cc",
-        "net/spdy/header_coalescer.cc",
-        "net/spdy/http2_priority_dependencies.cc",
-        "net/spdy/http2_push_promise_index.cc",
-        "net/spdy/multiplexed_http_stream.cc",
-        "net/spdy/multiplexed_session.cc",
-        "net/spdy/spdy_buffer.cc",
-        "net/spdy/spdy_buffer_producer.cc",
-        "net/spdy/spdy_http_stream.cc",
-        "net/spdy/spdy_http_utils.cc",
-        "net/spdy/spdy_log_util.cc",
-        "net/spdy/spdy_proxy_client_socket.cc",
-        "net/spdy/spdy_read_queue.cc",
-        "net/spdy/spdy_session.cc",
-        "net/spdy/spdy_session_key.cc",
-        "net/spdy/spdy_session_pool.cc",
-        "net/spdy/spdy_stream.cc",
-        "net/spdy/spdy_write_queue.cc",
-        "net/ssl/cert_compression.cc",
-        "net/ssl/client_cert_identity.cc",
-        "net/ssl/openssl_ssl_util.cc",
-        "net/ssl/ssl_cert_request_info.cc",
-        "net/ssl/ssl_cipher_suite_names.cc",
-        "net/ssl/ssl_client_auth_cache.cc",
-        "net/ssl/ssl_client_session_cache.cc",
-        "net/ssl/ssl_config.cc",
-        "net/ssl/ssl_config_service.cc",
-        "net/ssl/ssl_config_service_defaults.cc",
-        "net/ssl/ssl_info.cc",
-        "net/ssl/ssl_key_logger.cc",
-        "net/ssl/ssl_key_logger_impl.cc",
-        "net/ssl/ssl_platform_key_android.cc",
-        "net/ssl/ssl_platform_key_util.cc",
-        "net/ssl/ssl_private_key.cc",
-        "net/ssl/ssl_server_config.cc",
-        "net/ssl/threaded_ssl_private_key.cc",
-        "net/url_request/redirect_info.cc",
-        "net/url_request/redirect_util.cc",
-        "net/url_request/report_sender.cc",
-        "net/url_request/static_http_user_agent_settings.cc",
-        "net/url_request/url_request.cc",
-        "net/url_request/url_request_context.cc",
-        "net/url_request/url_request_context_builder.cc",
-        "net/url_request/url_request_context_getter.cc",
-        "net/url_request/url_request_error_job.cc",
-        "net/url_request/url_request_filter.cc",
-        "net/url_request/url_request_http_job.cc",
-        "net/url_request/url_request_interceptor.cc",
-        "net/url_request/url_request_job.cc",
-        "net/url_request/url_request_job_factory.cc",
-        "net/url_request/url_request_netlog_params.cc",
-        "net/url_request/url_request_redirect_job.cc",
-        "net/url_request/url_request_throttler_entry.cc",
-        "net/url_request/url_request_throttler_manager.cc",
-        "net/url_request/view_cache_helper.cc",
-        "net/url_request/websocket_handshake_userdata_key.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_dns_dns",
-        "cronet_aml_net_dns_public_public",
-        "cronet_aml_net_http_transport_security_state_generated_files",
-        "cronet_aml_net_net_deps",
-        "cronet_aml_net_net_public_deps",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_net_ios_cronet_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_net_ios_cronet_buildflags",
-    ],
-    export_static_lib_headers: [
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_third_party_quiche_quiche",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_posix.cc",
-            ],
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:net__testing
-cc_library_static {
-    name: "cronet_aml_net_net__testing",
-    srcs: [
-        "net/android/android_http_util.cc",
-        "net/android/cert_verify_result_android.cc",
-        "net/android/gurl_utils.cc",
-        "net/android/http_auth_negotiate_android.cc",
-        "net/android/keystore.cc",
-        "net/android/network_change_notifier_android.cc",
-        "net/android/network_change_notifier_delegate_android.cc",
-        "net/android/network_change_notifier_factory_android.cc",
-        "net/android/network_library.cc",
-        "net/android/radio_activity_tracker.cc",
-        "net/android/traffic_stats.cc",
-        "net/base/address_family.cc",
-        "net/base/address_list.cc",
-        "net/base/address_tracker_linux.cc",
-        "net/base/auth.cc",
-        "net/base/backoff_entry.cc",
-        "net/base/backoff_entry_serializer.cc",
-        "net/base/cache_metrics.cc",
-        "net/base/chunked_upload_data_stream.cc",
-        "net/base/connection_endpoint_metadata.cc",
-        "net/base/data_url.cc",
-        "net/base/datagram_buffer.cc",
-        "net/base/elements_upload_data_stream.cc",
-        "net/base/features.cc",
-        "net/base/file_stream.cc",
-        "net/base/file_stream_context.cc",
-        "net/base/file_stream_context_posix.cc",
-        "net/base/filename_util.cc",
-        "net/base/filename_util_internal.cc",
-        "net/base/hash_value.cc",
-        "net/base/hex_utils.cc",
-        "net/base/host_mapping_rules.cc",
-        "net/base/host_port_pair.cc",
-        "net/base/io_buffer.cc",
-        "net/base/ip_address.cc",
-        "net/base/ip_endpoint.cc",
-        "net/base/isolation_info.cc",
-        "net/base/load_timing_info.cc",
-        "net/base/logging_network_change_observer.cc",
-        "net/base/lookup_string_in_fixed_set.cc",
-        "net/base/mime_sniffer.cc",
-        "net/base/mime_util.cc",
-        "net/base/net_errors.cc",
-        "net/base/net_errors_posix.cc",
-        "net/base/net_module.cc",
-        "net/base/net_string_util_icu_alternatives_android.cc",
-        "net/base/network_activity_monitor.cc",
-        "net/base/network_anonymization_key.cc",
-        "net/base/network_change_notifier.cc",
-        "net/base/network_change_notifier_posix.cc",
-        "net/base/network_delegate.cc",
-        "net/base/network_delegate_impl.cc",
-        "net/base/network_interfaces.cc",
-        "net/base/network_interfaces_getifaddrs.cc",
-        "net/base/network_interfaces_getifaddrs_android.cc",
-        "net/base/network_interfaces_linux.cc",
-        "net/base/network_interfaces_posix.cc",
-        "net/base/network_isolation_key.cc",
-        "net/base/parse_number.cc",
-        "net/base/platform_mime_util_linux.cc",
-        "net/base/port_util.cc",
-        "net/base/prioritized_dispatcher.cc",
-        "net/base/prioritized_task_runner.cc",
-        "net/base/privacy_mode.cc",
-        "net/base/proxy_server.cc",
-        "net/base/proxy_string_util.cc",
-        "net/base/registry_controlled_domains/registry_controlled_domain.cc",
-        "net/base/request_priority.cc",
-        "net/base/scheme_host_port_matcher.cc",
-        "net/base/scheme_host_port_matcher_rule.cc",
-        "net/base/schemeful_site.cc",
-        "net/base/sockaddr_storage.cc",
-        "net/base/sockaddr_util_posix.cc",
-        "net/base/transport_info.cc",
-        "net/base/upload_bytes_element_reader.cc",
-        "net/base/upload_data_stream.cc",
-        "net/base/upload_element_reader.cc",
-        "net/base/upload_file_element_reader.cc",
-        "net/base/url_util.cc",
-        "net/cert/asn1_util.cc",
-        "net/cert/caching_cert_verifier.cc",
-        "net/cert/cert_and_ct_verifier.cc",
-        "net/cert/cert_database.cc",
-        "net/cert/cert_status_flags.cc",
-        "net/cert/cert_verifier.cc",
-        "net/cert/cert_verify_proc.cc",
-        "net/cert/cert_verify_proc_android.cc",
-        "net/cert/cert_verify_proc_builtin.cc",
-        "net/cert/cert_verify_result.cc",
-        "net/cert/coalescing_cert_verifier.cc",
-        "net/cert/crl_set.cc",
-        "net/cert/ct_log_response_parser.cc",
-        "net/cert/ct_log_verifier.cc",
-        "net/cert/ct_log_verifier_util.cc",
-        "net/cert/ct_objects_extractor.cc",
-        "net/cert/ct_policy_enforcer.cc",
-        "net/cert/ct_sct_to_string.cc",
-        "net/cert/ct_serialization.cc",
-        "net/cert/ct_signed_certificate_timestamp_log_param.cc",
-        "net/cert/do_nothing_ct_verifier.cc",
-        "net/cert/ev_root_ca_metadata.cc",
-        "net/cert/internal/cert_issuer_source_aia.cc",
-        "net/cert/internal/revocation_checker.cc",
-        "net/cert/internal/system_trust_store.cc",
-        "net/cert/known_roots.cc",
-        "net/cert/merkle_audit_proof.cc",
-        "net/cert/merkle_consistency_proof.cc",
-        "net/cert/merkle_tree_leaf.cc",
-        "net/cert/multi_log_ct_verifier.cc",
-        "net/cert/multi_threaded_cert_verifier.cc",
-        "net/cert/ocsp_verify_result.cc",
-        "net/cert/pem.cc",
-        "net/cert/pki/cert_error_id.cc",
-        "net/cert/pki/cert_error_params.cc",
-        "net/cert/pki/cert_errors.cc",
-        "net/cert/pki/cert_issuer_source_static.cc",
-        "net/cert/pki/certificate_policies.cc",
-        "net/cert/pki/common_cert_errors.cc",
-        "net/cert/pki/crl.cc",
-        "net/cert/pki/extended_key_usage.cc",
-        "net/cert/pki/general_names.cc",
-        "net/cert/pki/name_constraints.cc",
-        "net/cert/pki/ocsp.cc",
-        "net/cert/pki/parse_certificate.cc",
-        "net/cert/pki/parse_name.cc",
-        "net/cert/pki/parsed_certificate.cc",
-        "net/cert/pki/path_builder.cc",
-        "net/cert/pki/revocation_util.cc",
-        "net/cert/pki/signature_algorithm.cc",
-        "net/cert/pki/simple_path_builder_delegate.cc",
-        "net/cert/pki/string_util.cc",
-        "net/cert/pki/trust_store.cc",
-        "net/cert/pki/trust_store_collection.cc",
-        "net/cert/pki/trust_store_in_memory.cc",
-        "net/cert/pki/verify_certificate_chain.cc",
-        "net/cert/pki/verify_name_match.cc",
-        "net/cert/pki/verify_signed_data.cc",
-        "net/cert/sct_status_flags.cc",
-        "net/cert/signed_certificate_timestamp.cc",
-        "net/cert/signed_certificate_timestamp_and_status.cc",
-        "net/cert/signed_tree_head.cc",
-        "net/cert/symantec_certs.cc",
-        "net/cert/test_root_certs.cc",
-        "net/cert/test_root_certs_android.cc",
-        "net/cert/trial_comparison_cert_verifier_util.cc",
-        "net/cert/x509_cert_types.cc",
-        "net/cert/x509_certificate.cc",
-        "net/cert/x509_certificate_net_log_param.cc",
-        "net/cert/x509_util.cc",
-        "net/cert/x509_util_android.cc",
-        "net/cert_net/cert_net_fetcher_url_request.cc",
-        "net/cookies/canonical_cookie.cc",
-        "net/cookies/cookie_access_delegate.cc",
-        "net/cookies/cookie_access_result.cc",
-        "net/cookies/cookie_change_dispatcher.cc",
-        "net/cookies/cookie_constants.cc",
-        "net/cookies/cookie_deletion_info.cc",
-        "net/cookies/cookie_inclusion_status.cc",
-        "net/cookies/cookie_monster.cc",
-        "net/cookies/cookie_monster_change_dispatcher.cc",
-        "net/cookies/cookie_monster_netlog_params.cc",
-        "net/cookies/cookie_options.cc",
-        "net/cookies/cookie_partition_key.cc",
-        "net/cookies/cookie_partition_key_collection.cc",
-        "net/cookies/cookie_store.cc",
-        "net/cookies/cookie_util.cc",
-        "net/cookies/parsed_cookie.cc",
-        "net/cookies/site_for_cookies.cc",
-        "net/cookies/static_cookie_policy.cc",
-        "net/der/encode_values.cc",
-        "net/der/input.cc",
-        "net/der/parse_values.cc",
-        "net/der/parser.cc",
-        "net/der/tag.cc",
-        "net/disk_cache/backend_cleanup_tracker.cc",
-        "net/disk_cache/blockfile/addr.cc",
-        "net/disk_cache/blockfile/backend_impl.cc",
-        "net/disk_cache/blockfile/bitmap.cc",
-        "net/disk_cache/blockfile/block_files.cc",
-        "net/disk_cache/blockfile/disk_format.cc",
-        "net/disk_cache/blockfile/entry_impl.cc",
-        "net/disk_cache/blockfile/eviction.cc",
-        "net/disk_cache/blockfile/file.cc",
-        "net/disk_cache/blockfile/file_lock.cc",
-        "net/disk_cache/blockfile/file_posix.cc",
-        "net/disk_cache/blockfile/in_flight_backend_io.cc",
-        "net/disk_cache/blockfile/in_flight_io.cc",
-        "net/disk_cache/blockfile/mapped_file.cc",
-        "net/disk_cache/blockfile/rankings.cc",
-        "net/disk_cache/blockfile/sparse_control.cc",
-        "net/disk_cache/blockfile/stats.cc",
-        "net/disk_cache/cache_util.cc",
-        "net/disk_cache/cache_util_posix.cc",
-        "net/disk_cache/disk_cache.cc",
-        "net/disk_cache/memory/mem_backend_impl.cc",
-        "net/disk_cache/memory/mem_entry_impl.cc",
-        "net/disk_cache/net_log_parameters.cc",
-        "net/disk_cache/simple/post_doom_waiter.cc",
-        "net/disk_cache/simple/simple_backend_impl.cc",
-        "net/disk_cache/simple/simple_entry_format.cc",
-        "net/disk_cache/simple/simple_entry_impl.cc",
-        "net/disk_cache/simple/simple_entry_operation.cc",
-        "net/disk_cache/simple/simple_file_enumerator.cc",
-        "net/disk_cache/simple/simple_file_tracker.cc",
-        "net/disk_cache/simple/simple_index.cc",
-        "net/disk_cache/simple/simple_index_file.cc",
-        "net/disk_cache/simple/simple_net_log_parameters.cc",
-        "net/disk_cache/simple/simple_synchronous_entry.cc",
-        "net/disk_cache/simple/simple_util.cc",
-        "net/disk_cache/simple/simple_util_posix.cc",
-        "net/disk_cache/simple/simple_version_upgrade.cc",
-        "net/filter/brotli_source_stream.cc",
-        "net/filter/filter_source_stream.cc",
-        "net/filter/gzip_header.cc",
-        "net/filter/gzip_source_stream.cc",
-        "net/filter/source_stream.cc",
-        "net/first_party_sets/addition_overlaps_union_find.cc",
-        "net/first_party_sets/first_party_set_entry.cc",
-        "net/first_party_sets/first_party_set_metadata.cc",
-        "net/first_party_sets/first_party_sets_cache_filter.cc",
-        "net/first_party_sets/first_party_sets_context_config.cc",
-        "net/first_party_sets/global_first_party_sets.cc",
-        "net/first_party_sets/same_party_context.cc",
-        "net/http/alternative_service.cc",
-        "net/http/bidirectional_stream.cc",
-        "net/http/bidirectional_stream_impl.cc",
-        "net/http/bidirectional_stream_request_info.cc",
-        "net/http/broken_alternative_services.cc",
-        "net/http/http_auth.cc",
-        "net/http/http_auth_cache.cc",
-        "net/http/http_auth_challenge_tokenizer.cc",
-        "net/http/http_auth_controller.cc",
-        "net/http/http_auth_filter.cc",
-        "net/http/http_auth_handler.cc",
-        "net/http/http_auth_handler_basic.cc",
-        "net/http/http_auth_handler_digest.cc",
-        "net/http/http_auth_handler_factory.cc",
-        "net/http/http_auth_handler_negotiate.cc",
-        "net/http/http_auth_handler_ntlm.cc",
-        "net/http/http_auth_handler_ntlm_portable.cc",
-        "net/http/http_auth_multi_round_parse.cc",
-        "net/http/http_auth_ntlm_mechanism.cc",
-        "net/http/http_auth_preferences.cc",
-        "net/http/http_auth_scheme.cc",
-        "net/http/http_basic_state.cc",
-        "net/http/http_basic_stream.cc",
-        "net/http/http_byte_range.cc",
-        "net/http/http_cache.cc",
-        "net/http/http_cache_lookup_manager.cc",
-        "net/http/http_cache_transaction.cc",
-        "net/http/http_cache_writers.cc",
-        "net/http/http_chunked_decoder.cc",
-        "net/http/http_content_disposition.cc",
-        "net/http/http_log_util.cc",
-        "net/http/http_network_layer.cc",
-        "net/http/http_network_session.cc",
-        "net/http/http_network_session_peer.cc",
-        "net/http/http_network_transaction.cc",
-        "net/http/http_proxy_client_socket.cc",
-        "net/http/http_proxy_connect_job.cc",
-        "net/http/http_raw_request_headers.cc",
-        "net/http/http_request_headers.cc",
-        "net/http/http_request_info.cc",
-        "net/http/http_response_body_drainer.cc",
-        "net/http/http_response_headers.cc",
-        "net/http/http_response_info.cc",
-        "net/http/http_security_headers.cc",
-        "net/http/http_server_properties.cc",
-        "net/http/http_server_properties_manager.cc",
-        "net/http/http_status_code.cc",
-        "net/http/http_stream_factory.cc",
-        "net/http/http_stream_factory_job.cc",
-        "net/http/http_stream_factory_job_controller.cc",
-        "net/http/http_stream_parser.cc",
-        "net/http/http_stream_request.cc",
-        "net/http/http_util.cc",
-        "net/http/http_vary_data.cc",
-        "net/http/partial_data.cc",
-        "net/http/proxy_client_socket.cc",
-        "net/http/proxy_fallback.cc",
-        "net/http/transport_security_persister.cc",
-        "net/http/transport_security_state_source.cc",
-        "net/http/url_security_manager.cc",
-        "net/http/url_security_manager_posix.cc",
-        "net/http/webfonts_histogram.cc",
-        "net/log/file_net_log_observer.cc",
-        "net/log/net_log.cc",
-        "net/log/net_log_capture_mode.cc",
-        "net/log/net_log_entry.cc",
-        "net/log/net_log_event_type.cc",
-        "net/log/net_log_source.cc",
-        "net/log/net_log_util.cc",
-        "net/log/net_log_values.cc",
-        "net/log/net_log_with_source.cc",
-        "net/log/trace_net_log_observer.cc",
-        "net/network_error_logging/network_error_logging_service.cc",
-        "net/nqe/cached_network_quality.cc",
-        "net/nqe/effective_connection_type.cc",
-        "net/nqe/event_creator.cc",
-        "net/nqe/network_id.cc",
-        "net/nqe/network_qualities_prefs_manager.cc",
-        "net/nqe/network_quality.cc",
-        "net/nqe/network_quality_estimator.cc",
-        "net/nqe/network_quality_estimator_params.cc",
-        "net/nqe/network_quality_estimator_util.cc",
-        "net/nqe/network_quality_observation.cc",
-        "net/nqe/network_quality_store.cc",
-        "net/nqe/observation_buffer.cc",
-        "net/nqe/pref_names.cc",
-        "net/nqe/socket_watcher.cc",
-        "net/nqe/socket_watcher_factory.cc",
-        "net/nqe/throughput_analyzer.cc",
-        "net/ntlm/ntlm.cc",
-        "net/ntlm/ntlm_buffer_reader.cc",
-        "net/ntlm/ntlm_buffer_writer.cc",
-        "net/ntlm/ntlm_client.cc",
-        "net/ntlm/ntlm_constants.cc",
-        "net/proxy_resolution/configured_proxy_resolution_request.cc",
-        "net/proxy_resolution/configured_proxy_resolution_service.cc",
-        "net/proxy_resolution/dhcp_pac_file_fetcher.cc",
-        "net/proxy_resolution/multi_threaded_proxy_resolver.cc",
-        "net/proxy_resolution/network_delegate_error_observer.cc",
-        "net/proxy_resolution/pac_file_data.cc",
-        "net/proxy_resolution/pac_file_decider.cc",
-        "net/proxy_resolution/pac_file_fetcher.cc",
-        "net/proxy_resolution/pac_file_fetcher_impl.cc",
-        "net/proxy_resolution/polling_proxy_config_service.cc",
-        "net/proxy_resolution/proxy_bypass_rules.cc",
-        "net/proxy_resolution/proxy_config.cc",
-        "net/proxy_resolution/proxy_config_service.cc",
-        "net/proxy_resolution/proxy_config_service_android.cc",
-        "net/proxy_resolution/proxy_config_service_fixed.cc",
-        "net/proxy_resolution/proxy_config_with_annotation.cc",
-        "net/proxy_resolution/proxy_info.cc",
-        "net/proxy_resolution/proxy_list.cc",
-        "net/proxy_resolution/proxy_resolver_factory.cc",
-        "net/quic/bidirectional_stream_quic_impl.cc",
-        "net/quic/crypto/proof_source_chromium.cc",
-        "net/quic/crypto/proof_verifier_chromium.cc",
-        "net/quic/dedicated_web_transport_http3_client.cc",
-        "net/quic/network_connection.cc",
-        "net/quic/platform/impl/quic_chromium_clock.cc",
-        "net/quic/properties_based_quic_server_info.cc",
-        "net/quic/quic_address_mismatch.cc",
-        "net/quic/quic_chromium_alarm_factory.cc",
-        "net/quic/quic_chromium_client_session.cc",
-        "net/quic/quic_chromium_client_stream.cc",
-        "net/quic/quic_chromium_connection_helper.cc",
-        "net/quic/quic_chromium_packet_reader.cc",
-        "net/quic/quic_chromium_packet_writer.cc",
-        "net/quic/quic_clock_skew_detector.cc",
-        "net/quic/quic_connection_logger.cc",
-        "net/quic/quic_connectivity_monitor.cc",
-        "net/quic/quic_context.cc",
-        "net/quic/quic_crypto_client_config_handle.cc",
-        "net/quic/quic_crypto_client_stream_factory.cc",
-        "net/quic/quic_event_logger.cc",
-        "net/quic/quic_http3_logger.cc",
-        "net/quic/quic_http_stream.cc",
-        "net/quic/quic_http_utils.cc",
-        "net/quic/quic_proxy_client_socket.cc",
-        "net/quic/quic_server_info.cc",
-        "net/quic/quic_session_key.cc",
-        "net/quic/quic_stream_factory.cc",
-        "net/quic/set_quic_flag.cc",
-        "net/quic/web_transport_client.cc",
-        "net/quic/web_transport_error.cc",
-        "net/reporting/reporting_browsing_data_remover.cc",
-        "net/reporting/reporting_cache.cc",
-        "net/reporting/reporting_cache_impl.cc",
-        "net/reporting/reporting_cache_observer.cc",
-        "net/reporting/reporting_context.cc",
-        "net/reporting/reporting_delegate.cc",
-        "net/reporting/reporting_delivery_agent.cc",
-        "net/reporting/reporting_endpoint.cc",
-        "net/reporting/reporting_endpoint_manager.cc",
-        "net/reporting/reporting_garbage_collector.cc",
-        "net/reporting/reporting_header_parser.cc",
-        "net/reporting/reporting_network_change_observer.cc",
-        "net/reporting/reporting_policy.cc",
-        "net/reporting/reporting_report.cc",
-        "net/reporting/reporting_service.cc",
-        "net/reporting/reporting_uploader.cc",
-        "net/socket/client_socket_factory.cc",
-        "net/socket/client_socket_handle.cc",
-        "net/socket/client_socket_pool.cc",
-        "net/socket/client_socket_pool_manager.cc",
-        "net/socket/client_socket_pool_manager_impl.cc",
-        "net/socket/connect_job.cc",
-        "net/socket/connect_job_factory.cc",
-        "net/socket/network_binding_client_socket_factory.cc",
-        "net/socket/next_proto.cc",
-        "net/socket/server_socket.cc",
-        "net/socket/socket.cc",
-        "net/socket/socket_bio_adapter.cc",
-        "net/socket/socket_descriptor.cc",
-        "net/socket/socket_net_log_params.cc",
-        "net/socket/socket_options.cc",
-        "net/socket/socket_posix.cc",
-        "net/socket/socket_tag.cc",
-        "net/socket/socks5_client_socket.cc",
-        "net/socket/socks_client_socket.cc",
-        "net/socket/socks_connect_job.cc",
-        "net/socket/ssl_client_socket.cc",
-        "net/socket/ssl_client_socket_impl.cc",
-        "net/socket/ssl_connect_job.cc",
-        "net/socket/ssl_server_socket_impl.cc",
-        "net/socket/stream_socket.cc",
-        "net/socket/tcp_client_socket.cc",
-        "net/socket/tcp_server_socket.cc",
-        "net/socket/tcp_socket_posix.cc",
-        "net/socket/transport_client_socket.cc",
-        "net/socket/transport_client_socket_pool.cc",
-        "net/socket/transport_connect_job.cc",
-        "net/socket/transport_connect_sub_job.cc",
-        "net/socket/udp_client_socket.cc",
-        "net/socket/udp_net_log_parameters.cc",
-        "net/socket/udp_server_socket.cc",
-        "net/socket/udp_socket_global_limits.cc",
-        "net/socket/udp_socket_posix.cc",
-        "net/socket/unix_domain_client_socket_posix.cc",
-        "net/socket/unix_domain_server_socket_posix.cc",
-        "net/socket/websocket_endpoint_lock_manager.cc",
-        "net/socket/websocket_transport_client_socket_pool.cc",
-        "net/spdy/alps_decoder.cc",
-        "net/spdy/bidirectional_stream_spdy_impl.cc",
-        "net/spdy/buffered_spdy_framer.cc",
-        "net/spdy/header_coalescer.cc",
-        "net/spdy/http2_priority_dependencies.cc",
-        "net/spdy/http2_push_promise_index.cc",
-        "net/spdy/multiplexed_http_stream.cc",
-        "net/spdy/multiplexed_session.cc",
-        "net/spdy/spdy_buffer.cc",
-        "net/spdy/spdy_buffer_producer.cc",
-        "net/spdy/spdy_http_stream.cc",
-        "net/spdy/spdy_http_utils.cc",
-        "net/spdy/spdy_log_util.cc",
-        "net/spdy/spdy_proxy_client_socket.cc",
-        "net/spdy/spdy_read_queue.cc",
-        "net/spdy/spdy_session.cc",
-        "net/spdy/spdy_session_key.cc",
-        "net/spdy/spdy_session_pool.cc",
-        "net/spdy/spdy_stream.cc",
-        "net/spdy/spdy_write_queue.cc",
-        "net/ssl/cert_compression.cc",
-        "net/ssl/client_cert_identity.cc",
-        "net/ssl/openssl_ssl_util.cc",
-        "net/ssl/ssl_cert_request_info.cc",
-        "net/ssl/ssl_cipher_suite_names.cc",
-        "net/ssl/ssl_client_auth_cache.cc",
-        "net/ssl/ssl_client_session_cache.cc",
-        "net/ssl/ssl_config.cc",
-        "net/ssl/ssl_config_service.cc",
-        "net/ssl/ssl_config_service_defaults.cc",
-        "net/ssl/ssl_info.cc",
-        "net/ssl/ssl_key_logger.cc",
-        "net/ssl/ssl_key_logger_impl.cc",
-        "net/ssl/ssl_platform_key_android.cc",
-        "net/ssl/ssl_platform_key_util.cc",
-        "net/ssl/ssl_private_key.cc",
-        "net/ssl/ssl_server_config.cc",
-        "net/ssl/threaded_ssl_private_key.cc",
-        "net/url_request/redirect_info.cc",
-        "net/url_request/redirect_util.cc",
-        "net/url_request/report_sender.cc",
-        "net/url_request/static_http_user_agent_settings.cc",
-        "net/url_request/url_request.cc",
-        "net/url_request/url_request_context.cc",
-        "net/url_request/url_request_context_builder.cc",
-        "net/url_request/url_request_context_getter.cc",
-        "net/url_request/url_request_error_job.cc",
-        "net/url_request/url_request_filter.cc",
-        "net/url_request/url_request_http_job.cc",
-        "net/url_request/url_request_interceptor.cc",
-        "net/url_request/url_request_job.cc",
-        "net/url_request/url_request_job_factory.cc",
-        "net/url_request/url_request_netlog_params.cc",
-        "net/url_request/url_request_redirect_job.cc",
-        "net/url_request/url_request_throttler_entry.cc",
-        "net/url_request/url_request_throttler_manager.cc",
-        "net/url_request/view_cache_helper.cc",
-        "net/url_request/websocket_handshake_userdata_key.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_net_ios_cronet_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_net_ios_cronet_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_posix.cc",
-            ],
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "net/disk_cache/blockfile/mapped_file_bypass_mmap_posix.cc",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:net_deps
-cc_library_static {
-    name: "cronet_aml_net_net_deps",
-    srcs: [
-        ":cronet_aml_net_isolation_info_proto_gen",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_net_preload_decoder",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_brotli_common",
-        "cronet_aml_third_party_brotli_dec",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains",
-        "cronet_aml_net_isolation_info_proto_gen_headers",
-        "cronet_aml_net_net_jni_headers",
-        "cronet_aml_url_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains",
-        "cronet_aml_net_isolation_info_proto_gen_headers",
-        "cronet_aml_net_net_jni_headers",
-        "cronet_aml_url_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:net_deps__testing
-cc_library_static {
-    name: "cronet_aml_net_net_deps__testing",
-    srcs: [
-        ":cronet_aml_net_isolation_info_proto__testing_gen",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__testing",
-        "cronet_aml_net_isolation_info_proto__testing_gen_headers",
-        "cronet_aml_net_net_jni_headers__testing",
-        "cronet_aml_url_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__testing",
-        "cronet_aml_net_isolation_info_proto__testing_gen_headers",
-        "cronet_aml_net_net_jni_headers__testing",
-        "cronet_aml_url_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DENABLE_BUILT_IN_DNS",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNET_IMPLEMENTATION",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/brotli/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:net_jni_headers
-cc_genrule {
-    name: "cronet_aml_net_net_jni_headers",
-    srcs: [
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/net/net_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "AndroidCertVerifyResult_jni.h " +
-         "--output_name " +
-         "AndroidKeyStore_jni.h " +
-         "--output_name " +
-         "AndroidNetworkLibrary_jni.h " +
-         "--output_name " +
-         "AndroidTrafficStats_jni.h " +
-         "--output_name " +
-         "DnsStatus_jni.h " +
-         "--output_name " +
-         "GURLUtils_jni.h " +
-         "--output_name " +
-         "HttpNegotiateAuthenticator_jni.h " +
-         "--output_name " +
-         "HttpUtil_jni.h " +
-         "--output_name " +
-         "NetStringUtil_jni.h " +
-         "--output_name " +
-         "NetworkActiveNotifier_jni.h " +
-         "--output_name " +
-         "NetworkChangeNotifier_jni.h " +
-         "--output_name " +
-         "ProxyChangeListener_jni.h " +
-         "--output_name " +
-         "X509Util_jni.h " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidKeyStore.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidTrafficStats.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/DnsStatus.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/GURLUtils.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/HttpUtil.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/NetStringUtil.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/NetworkActiveNotifier.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/NetworkChangeNotifier.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/ProxyChangeListener.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/X509Util.java) " +
-         "--package_prefix " +
-         "android.net.http.internal",
-    out: [
-        "net/net_jni_headers/AndroidCertVerifyResult_jni.h",
-        "net/net_jni_headers/AndroidKeyStore_jni.h",
-        "net/net_jni_headers/AndroidNetworkLibrary_jni.h",
-        "net/net_jni_headers/AndroidTrafficStats_jni.h",
-        "net/net_jni_headers/DnsStatus_jni.h",
-        "net/net_jni_headers/GURLUtils_jni.h",
-        "net/net_jni_headers/HttpNegotiateAuthenticator_jni.h",
-        "net/net_jni_headers/HttpUtil_jni.h",
-        "net/net_jni_headers/NetStringUtil_jni.h",
-        "net/net_jni_headers/NetworkActiveNotifier_jni.h",
-        "net/net_jni_headers/NetworkChangeNotifier_jni.h",
-        "net/net_jni_headers/ProxyChangeListener_jni.h",
-        "net/net_jni_headers/X509Util_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:net_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_net_net_jni_headers__testing",
-    srcs: [
-        "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
-        "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
-        "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
-        "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
-        "net/android/java/src/org/chromium/net/DnsStatus.java",
-        "net/android/java/src/org/chromium/net/GURLUtils.java",
-        "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
-        "net/android/java/src/org/chromium/net/HttpUtil.java",
-        "net/android/java/src/org/chromium/net/NetStringUtil.java",
-        "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
-        "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
-        "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
-        "net/android/java/src/org/chromium/net/X509Util.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/net/net_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "AndroidCertVerifyResult_jni.h " +
-         "--output_name " +
-         "AndroidKeyStore_jni.h " +
-         "--output_name " +
-         "AndroidNetworkLibrary_jni.h " +
-         "--output_name " +
-         "AndroidTrafficStats_jni.h " +
-         "--output_name " +
-         "DnsStatus_jni.h " +
-         "--output_name " +
-         "GURLUtils_jni.h " +
-         "--output_name " +
-         "HttpNegotiateAuthenticator_jni.h " +
-         "--output_name " +
-         "HttpUtil_jni.h " +
-         "--output_name " +
-         "NetStringUtil_jni.h " +
-         "--output_name " +
-         "NetworkActiveNotifier_jni.h " +
-         "--output_name " +
-         "NetworkChangeNotifier_jni.h " +
-         "--output_name " +
-         "ProxyChangeListener_jni.h " +
-         "--output_name " +
-         "X509Util_jni.h " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidKeyStore.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/AndroidTrafficStats.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/DnsStatus.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/GURLUtils.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/HttpUtil.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/NetStringUtil.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/NetworkActiveNotifier.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/NetworkChangeNotifier.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/ProxyChangeListener.java) " +
-         "--input_file " +
-         "$(location net/android/java/src/org/chromium/net/X509Util.java)",
-    out: [
-        "net/net_jni_headers/AndroidCertVerifyResult_jni.h",
-        "net/net_jni_headers/AndroidKeyStore_jni.h",
-        "net/net_jni_headers/AndroidNetworkLibrary_jni.h",
-        "net/net_jni_headers/AndroidTrafficStats_jni.h",
-        "net/net_jni_headers/DnsStatus_jni.h",
-        "net/net_jni_headers/GURLUtils_jni.h",
-        "net/net_jni_headers/HttpNegotiateAuthenticator_jni.h",
-        "net/net_jni_headers/HttpUtil_jni.h",
-        "net/net_jni_headers/NetStringUtil_jni.h",
-        "net/net_jni_headers/NetworkActiveNotifier_jni.h",
-        "net/net_jni_headers/NetworkChangeNotifier_jni.h",
-        "net/net_jni_headers/ProxyChangeListener_jni.h",
-        "net/net_jni_headers/X509Util_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:net_nqe_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_net_nqe_proto__testing_gen",
-    srcs: [
-        "net/nqe/proto/network_id_proto.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/cronet/net/nqe/proto/ $(in)",
-    out: [
-        "external/cronet/net/nqe/proto/network_id_proto.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:net_nqe_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_net_nqe_proto__testing_gen_headers",
-    srcs: [
-        "net/nqe/proto/network_id_proto.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/cronet/net/nqe/proto/ $(in)",
-    out: [
-        "external/cronet/net/nqe/proto/network_id_proto.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/nqe/proto",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:net_nqe_proto
-cc_genrule {
-    name: "cronet_aml_net_net_nqe_proto_gen",
-    srcs: [
-        "net/nqe/proto/network_id_proto.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/cronet/net/nqe/proto/ $(in)",
-    out: [
-        "external/cronet/net/nqe/proto/network_id_proto.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:net_nqe_proto
-cc_genrule {
-    name: "cronet_aml_net_net_nqe_proto_gen_headers",
-    srcs: [
-        "net/nqe/proto/network_id_proto.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/cronet/net/nqe/proto/ $(in)",
-    out: [
-        "external/cronet/net/nqe/proto/network_id_proto.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/nqe/proto",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net:net_public_deps
-cc_library_static {
-    name: "cronet_aml_net_net_public_deps",
-    srcs: [
-        ":cronet_aml_net_net_nqe_proto_gen",
-        ":cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_crypto_crypto",
-        "cronet_aml_net_third_party_quiche_quiche",
-        "cronet_aml_net_traffic_annotation_traffic_annotation",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    generated_headers: [
-        "cronet_aml_net_buildflags",
-        "cronet_aml_net_net_nqe_proto_gen_headers",
-        "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_net_buildflags",
-        "cronet_aml_net_net_nqe_proto_gen_headers",
-        "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:net_public_deps__testing
-cc_library_static {
-    name: "cronet_aml_net_net_public_deps__testing",
-    srcs: [
-        ":cronet_aml_net_net_nqe_proto__testing_gen",
-        ":cronet_aml_net_third_party_quiche_net_quic_test_tools_proto__testing_gen",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_net_buildflags__testing",
-        "cronet_aml_net_net_nqe_proto__testing_gen_headers",
-        "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto__testing_gen_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_net_buildflags__testing",
-        "cronet_aml_net_net_nqe_proto__testing_gen_headers",
-        "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto__testing_gen_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:preload_decoder
-cc_library_static {
-    name: "cronet_aml_net_preload_decoder",
-    srcs: [
-        "net/extras/preload_data/decoder.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:preload_decoder__testing
-cc_library_static {
-    name: "cronet_aml_net_preload_decoder__testing",
-    srcs: [
-        "net/extras/preload_data/decoder.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:quic_test_flags_utils__testing
-cc_library_static {
-    name: "cronet_aml_net_quic_test_flags_utils__testing",
-    srcs: [
-        "net/quic/platform/impl/quic_test_flags_utils.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:simple_quic_tools__testing
-cc_library_static {
-    name: "cronet_aml_net_simple_quic_tools__testing",
-    srcs: [
-        "net/tools/quic/quic_client_message_loop_network_helper.cc",
-        "net/tools/quic/quic_simple_client.cc",
-        "net/tools/quic/quic_simple_server.cc",
-        "net/tools/quic/quic_simple_server_packet_writer.cc",
-        "net/tools/quic/quic_simple_server_session_helper.cc",
-        "net/tools/quic/quic_simple_server_socket.cc",
-        "net/tools/quic/synchronous_host_resolver.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_third_party_quiche_quiche_tool_support__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:test_support__testing
-cc_library_static {
-    name: "cronet_aml_net_test_support__testing",
-    srcs: [
-        "net/base/connection_endpoint_metadata_test_util.cc",
-        "net/base/load_timing_info_test_util.cc",
-        "net/base/mock_file_stream.cc",
-        "net/base/mock_network_change_notifier.cc",
-        "net/base/test_completion_callback.cc",
-        "net/base/test_data_stream.cc",
-        "net/cert/mock_cert_net_fetcher.cc",
-        "net/cert/mock_cert_verifier.cc",
-        "net/cert/mock_client_cert_verifier.cc",
-        "net/cookies/cookie_change_dispatcher_test_helpers.cc",
-        "net/cookies/cookie_monster_store_test.cc",
-        "net/cookies/cookie_store_test_callbacks.cc",
-        "net/cookies/cookie_store_test_helpers.cc",
-        "net/cookies/test_cookie_access_delegate.cc",
-        "net/disk_cache/disk_cache_test_base.cc",
-        "net/disk_cache/disk_cache_test_util.cc",
-        "net/disk_cache/mock/mock_backend_impl.cc",
-        "net/disk_cache/mock/mock_entry_impl.cc",
-        "net/filter/filter_source_stream_test_util.cc",
-        "net/filter/mock_source_stream.cc",
-        "net/http/http_stream_factory_test_util.cc",
-        "net/http/http_transaction_test_util.cc",
-        "net/http/mock_http_cache.cc",
-        "net/http/transport_security_state_test_util.cc",
-        "net/log/test_net_log.cc",
-        "net/log/test_net_log_util.cc",
-        "net/network_error_logging/mock_persistent_nel_store.cc",
-        "net/network_error_logging/network_error_logging_test_util.cc",
-        "net/nqe/network_quality_estimator_test_util.cc",
-        "net/proxy_resolution/mock_pac_file_fetcher.cc",
-        "net/proxy_resolution/mock_proxy_resolver.cc",
-        "net/proxy_resolution/proxy_config_service_common_unittest.cc",
-        "net/quic/quic_test_packet_printer.cc",
-        "net/reporting/mock_persistent_reporting_store.cc",
-        "net/reporting/reporting_test_util.cc",
-        "net/socket/read_buffering_stream_socket.cc",
-        "net/socket/socket_test_util.cc",
-        "net/socket/transport_client_socket_test_util.cc",
-        "net/spdy/spdy_test_util_common.cc",
-        "net/ssl/client_cert_identity_test_util.cc",
-        "net/ssl/ssl_private_key_test_util.cc",
-        "net/ssl/test_ssl_config_service.cc",
-        "net/ssl/test_ssl_private_key.cc",
-        "net/test/cert_builder.cc",
-        "net/test/cert_test_util.cc",
-        "net/test/ct_test_util.cc",
-        "net/test/embedded_test_server/connection_tracker.cc",
-        "net/test/embedded_test_server/controllable_http_response.cc",
-        "net/test/embedded_test_server/default_handlers.cc",
-        "net/test/embedded_test_server/embedded_test_server.cc",
-        "net/test/embedded_test_server/embedded_test_server_connection_listener.cc",
-        "net/test/embedded_test_server/http1_connection.cc",
-        "net/test/embedded_test_server/http2_connection.cc",
-        "net/test/embedded_test_server/http_connection.cc",
-        "net/test/embedded_test_server/http_request.cc",
-        "net/test/embedded_test_server/http_response.cc",
-        "net/test/embedded_test_server/request_handler_util.cc",
-        "net/test/embedded_test_server/simple_connection_listener.cc",
-        "net/test/key_util.cc",
-        "net/test/net_test_suite.cc",
-        "net/test/quic_simple_test_server.cc",
-        "net/test/revocation_builder.cc",
-        "net/test/spawned_test_server/base_test_server.cc",
-        "net/test/spawned_test_server/remote_test_server.cc",
-        "net/test/spawned_test_server/remote_test_server_spawner_request.cc",
-        "net/test/ssl_test_util.cc",
-        "net/test/test_connection_cost_observer.cc",
-        "net/test/test_data_directory.cc",
-        "net/test/test_doh_server.cc",
-        "net/test/url_request/ssl_certificate_error_job.cc",
-        "net/test/url_request/url_request_failed_job.cc",
-        "net/test/url_request/url_request_hanging_read_job.cc",
-        "net/test/url_request/url_request_mock_data_job.cc",
-        "net/url_request/url_request_test_job.cc",
-        "net/url_request/url_request_test_util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_test_test_support__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_dns_test_support__testing",
-        "cronet_aml_net_gtest_util__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_quic_test_flags_utils__testing",
-        "cronet_aml_net_simple_quic_tools__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_third_party_quiche_quiche_tool_support__testing",
-        "cronet_aml_net_tools_tld_cleanup_tld_cleanup__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_net_http_transport_security_state_unittest_data_default__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_net_http_transport_security_state_unittest_data_default__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DUSE_REMOTE_TEST_SERVER",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/third_party/quiche:net_quic_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_proto__testing_gen",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.cc",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:net_quic_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_proto__testing_gen_headers",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.h",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.h",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/third_party/quiche/src",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:net_quic_proto
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_proto_gen",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.cc",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:net_quic_proto
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_proto_gen_headers",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.proto",
-        "net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.h",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.h",
-        "external/cronet/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/third_party/quiche/src",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:net_quic_test_tools_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto__testing_gen",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:net_quic_test_tools_proto__testing
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto__testing_gen_headers",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/third_party/quiche/src/quiche/quic/test_tools",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:net_quic_test_tools_proto
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:net_quic_test_tools_proto
-cc_genrule {
-    name: "cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
-    srcs: [
-        "net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
-    out: [
-        "external/cronet/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "net/third_party/quiche/src/quiche/quic/test_tools",
-        "protos",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //net/third_party/quiche:quiche
-cc_library_static {
-    name: "cronet_aml_net_third_party_quiche_quiche",
-    srcs: [
-        ":cronet_aml_net_third_party_quiche_net_quic_proto_gen",
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_mutex_impl.cc",
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_time_utils_impl.cc",
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_url_utils_impl.cc",
-        "net/third_party/quiche/src/quiche/common/platform/api/quiche_hostname_utils.cc",
-        "net/third_party/quiche/src/quiche/common/platform/api/quiche_mutex.cc",
-        "net/third_party/quiche/src/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_buffer_allocator.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_crypto_logging.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_data_reader.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_data_writer.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_ip_address.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_ip_address_family.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_mem_slice_storage.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_random.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_text_utils.cc",
-        "net/third_party/quiche/src/quiche/common/simple_buffer_allocator.cc",
-        "net/third_party/quiche/src/quiche/common/structured_headers.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/event_forwarder.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/header_validator.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/http2_protocol.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/http2_util.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/noop_header_validator.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_adapter.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_session.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_util.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/window_manager.cc",
-        "net/third_party/quiche/src/quiche/http2/core/http2_trace_logging.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/decode_buffer.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/decode_http2_structures.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/decode_status.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/frame_decoder_state.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/http2_frame_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/http2_frame_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/http2_structure_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/continuation_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/data_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/goaway_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/headers_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/ping_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/priority_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/settings_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/unknown_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/window_update_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_block_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_state.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_tables.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoding_error.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_type_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_string_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_string_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_whole_entry_buffer.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_whole_entry_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/http2_hpack_constants.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/huffman/hpack_huffman_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/huffman/hpack_huffman_encoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/huffman/huffman_spec_tables.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/varint/hpack_varint_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/varint/hpack_varint_encoder.cc",
-        "net/third_party/quiche/src/quiche/http2/http2_constants.cc",
-        "net/third_party/quiche/src/quiche/http2/http2_structures.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bandwidth_sampler.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_drain.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_misc.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_probe_bw.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_probe_rtt.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_startup.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/cubic_bytes.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/general_loss_algorithm.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/hybrid_slow_start.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/pacing_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/prr_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/rtt_stats.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/send_algorithm_interface.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/uber_loss_algorithm.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aead_base_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aead_base_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_12_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_12_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_256_gcm_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_256_gcm_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_base_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_base_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/cert_compressor.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/certificate_util.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/certificate_view.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_tls_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_tls_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha_base_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha_base_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/channel_id.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/client_proof_source.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_framer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_handshake.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_handshake_message.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_secret_boxer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/curve25519_key_exchange.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/key_exchange.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/null_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/null_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/p256_key_exchange.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/proof_source.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/proof_source_x509.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_client_session_cache.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_compressed_certs_cache.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_client_config.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_proof.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_server_config.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_client_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_server_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/transport_parameters.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc",
-        "net/third_party/quiche/src/quiche/quic/core/deterministic_connection_id_generator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ack_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ack_frequency_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_blocked_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_connection_close_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_crypto_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_goaway_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_handshake_done_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_max_streams_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_message_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_new_connection_id_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_new_token_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_padding_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_path_challenge_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_path_response_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ping_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_retire_connection_id_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_rst_stream_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stop_sending_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stop_waiting_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stream_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_streams_blocked_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_window_update_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/capsule.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/http_constants.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/http_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/http_encoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_client_promised_info.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_client_push_promise_index.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_header_list.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_headers_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_receive_control_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_send_control_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_server_initiated_spdy_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_server_session_base.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_session.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_session_base.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_session.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_stream_body_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/spdy_server_push_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/spdy_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/web_transport_http3.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/web_transport_stream_adapter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/legacy_quic_stream_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_blocking_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoded_headers_accumulator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder_stream_receiver.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder_stream_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder_stream_receiver.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder_stream_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_header_table.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_index_conversions.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instruction_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instruction_encoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instructions.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_progressive_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_receive_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_required_insert_count.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_send_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_static_table.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/value_splitting_header_list.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_ack_listener_interface.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_alarm.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_bandwidth.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_chaos_protector.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_clock.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_coalesced_packet.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_config.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_context.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_id.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_stats.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_constants.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_control_frame_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_client_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_client_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_server_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_server_stream_base.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_data_reader.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_data_writer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_datagram_queue.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_error_codes.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_flow_controller.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_framer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_idle_network_detector.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_legacy_version_encapsulator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_mtu_discovery.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_network_blackhole_detector.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_packet_creator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_packet_number.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_packets.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_path_validator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_ping_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_received_packet_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_sent_packet_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_server_id.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_session.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_socket_address_coder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_send_buffer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_sequencer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_sequencer_buffer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_sustained_bandwidth_recorder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_tag.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_time.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_transmission_info.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_types.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_unacked_packet_map.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_version_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_versions.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_write_blocked_list.cc",
-        "net/third_party/quiche/src/quiche/quic/core/tls_client_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/tls_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/tls_server_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/uber_received_packet_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/array_output_buffer.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_constants.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_decoder_adapter.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_encoder.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_entry.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_header_table.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_output_stream.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_static_table.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/http2_frame_decoder_adapter.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/http2_header_block.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/http2_header_storage.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/recording_headers_handler.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_alt_svc_wire_format.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_frame_builder.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_framer.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_no_op_visitor.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_pinnable_buffer_piece.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_prefixed_buffer_reader.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_protocol.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_simple_arena.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_net_uri_template",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-        "cronet_aml_third_party_protobuf_protobuf_lite",
-        "cronet_aml_url_url",
-    ],
-    generated_headers: [
-        "cronet_aml_net_third_party_quiche_net_quic_proto_gen_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_net_third_party_quiche_net_quic_proto_gen_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DIS_QUICHE_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/third_party/quiche:quiche__testing
-cc_library_static {
-    name: "cronet_aml_net_third_party_quiche_quiche__testing",
-    srcs: [
-        ":cronet_aml_net_third_party_quiche_net_quic_proto__testing_gen",
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_mutex_impl.cc",
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_time_utils_impl.cc",
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_url_utils_impl.cc",
-        "net/third_party/quiche/src/quiche/common/platform/api/quiche_hostname_utils.cc",
-        "net/third_party/quiche/src/quiche/common/platform/api/quiche_mutex.cc",
-        "net/third_party/quiche/src/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_buffer_allocator.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_crypto_logging.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_data_reader.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_data_writer.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_ip_address.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_ip_address_family.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_mem_slice_storage.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_random.cc",
-        "net/third_party/quiche/src/quiche/common/quiche_text_utils.cc",
-        "net/third_party/quiche/src/quiche/common/simple_buffer_allocator.cc",
-        "net/third_party/quiche/src/quiche/common/structured_headers.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/event_forwarder.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/header_validator.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/http2_protocol.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/http2_util.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/noop_header_validator.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_adapter.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_session.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/oghttp2_util.cc",
-        "net/third_party/quiche/src/quiche/http2/adapter/window_manager.cc",
-        "net/third_party/quiche/src/quiche/http2/core/http2_trace_logging.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/decode_buffer.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/decode_http2_structures.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/decode_status.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/frame_decoder_state.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/http2_frame_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/http2_frame_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/http2_structure_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/continuation_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/data_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/goaway_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/headers_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/ping_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/priority_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/settings_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/unknown_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/decoder/payload_decoders/window_update_payload_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_block_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_state.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_string_buffer.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoder_tables.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_decoding_error.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_entry_type_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_string_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_string_decoder_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_whole_entry_buffer.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/decoder/hpack_whole_entry_listener.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/http2_hpack_constants.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/huffman/hpack_huffman_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/huffman/hpack_huffman_encoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/huffman/huffman_spec_tables.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/varint/hpack_varint_decoder.cc",
-        "net/third_party/quiche/src/quiche/http2/hpack/varint/hpack_varint_encoder.cc",
-        "net/third_party/quiche/src/quiche/http2/http2_constants.cc",
-        "net/third_party/quiche/src/quiche/http2/http2_structures.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bandwidth_sampler.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_drain.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_misc.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_probe_bw.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_probe_rtt.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr2_startup.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/bbr_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/cubic_bytes.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/general_loss_algorithm.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/hybrid_slow_start.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/pacing_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/prr_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/rtt_stats.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/send_algorithm_interface.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc",
-        "net/third_party/quiche/src/quiche/quic/core/congestion_control/uber_loss_algorithm.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aead_base_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aead_base_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_12_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_12_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_128_gcm_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_256_gcm_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_256_gcm_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_base_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/aes_base_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/cert_compressor.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/certificate_util.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/certificate_view.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_tls_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha20_poly1305_tls_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha_base_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/chacha_base_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/channel_id.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/client_proof_source.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_framer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_handshake.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_handshake_message.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_secret_boxer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/crypto_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/curve25519_key_exchange.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/key_exchange.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/null_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/null_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/p256_key_exchange.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/proof_source.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/proof_source_x509.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_client_session_cache.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_compressed_certs_cache.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_client_config.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_proof.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_server_config.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_decrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_encrypter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_client_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/tls_server_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/transport_parameters.cc",
-        "net/third_party/quiche/src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier.cc",
-        "net/third_party/quiche/src/quiche/quic/core/deterministic_connection_id_generator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ack_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ack_frequency_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_blocked_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_connection_close_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_crypto_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_goaway_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_handshake_done_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_max_streams_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_message_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_new_connection_id_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_new_token_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_padding_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_path_challenge_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_path_response_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_ping_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_retire_connection_id_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_rst_stream_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stop_sending_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stop_waiting_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_stream_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_streams_blocked_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/frames/quic_window_update_frame.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/capsule.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/http_constants.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/http_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/http_encoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_client_promised_info.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_client_push_promise_index.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_header_list.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_headers_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_receive_control_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_send_control_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_server_initiated_spdy_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_server_session_base.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_session.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_session_base.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_client_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_session.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_stream_body_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/spdy_server_push_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/spdy_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/web_transport_http3.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/web_transport_stream_adapter.cc",
-        "net/third_party/quiche/src/quiche/quic/core/legacy_quic_stream_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_blocking_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoded_headers_accumulator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder_stream_receiver.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_decoder_stream_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder_stream_receiver.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_encoder_stream_sender.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_header_table.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_index_conversions.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instruction_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instruction_encoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_instructions.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_progressive_decoder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_receive_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_required_insert_count.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_send_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/qpack_static_table.cc",
-        "net/third_party/quiche/src/quiche/quic/core/qpack/value_splitting_header_list.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_ack_listener_interface.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_alarm.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_bandwidth.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_chaos_protector.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_clock.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_coalesced_packet.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_config.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_context.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_id.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_connection_stats.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_constants.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_control_frame_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_client_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_client_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_server_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_server_stream_base.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_crypto_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_data_reader.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_data_writer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_datagram_queue.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_error_codes.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_flow_controller.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_framer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_idle_network_detector.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_legacy_version_encapsulator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_mtu_discovery.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_network_blackhole_detector.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_packet_creator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_packet_number.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_packets.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_path_validator.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_ping_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_received_packet_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_sent_packet_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_server_id.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_session.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_socket_address_coder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_send_buffer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_sequencer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_stream_sequencer_buffer.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_sustained_bandwidth_recorder.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_tag.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_time.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_transmission_info.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_types.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_unacked_packet_map.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_utils.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_version_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_versions.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_write_blocked_list.cc",
-        "net/third_party/quiche/src/quiche/quic/core/tls_client_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/tls_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/tls_server_handshaker.cc",
-        "net/third_party/quiche/src/quiche/quic/core/uber_quic_stream_id_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/uber_received_packet_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/platform/api/quic_socket_address.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/array_output_buffer.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_constants.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_decoder_adapter.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_encoder.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_entry.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_header_table.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_output_stream.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/hpack/hpack_static_table.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/http2_frame_decoder_adapter.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/http2_header_block.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/http2_header_storage.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/recording_headers_handler.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_alt_svc_wire_format.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_frame_builder.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_framer.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_no_op_visitor.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_pinnable_buffer_piece.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_prefixed_buffer_reader.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_protocol.cc",
-        "net/third_party/quiche/src/quiche/spdy/core/spdy_simple_arena.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libprotobuf-cpp-lite",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_net_third_party_quiche_net_quic_proto__testing_gen_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_net_third_party_quiche_net_quic_proto__testing_gen_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DIS_QUICHE_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/third_party/quiche:quiche_tool_support__testing
-cc_library_static {
-    name: "cronet_aml_net_third_party_quiche_quiche_tool_support__testing",
-    srcs: [
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_command_line_flags_impl.cc",
-        "net/third_party/quiche/overrides/quiche_platform_impl/quiche_default_proof_providers_impl.cc",
-        "net/third_party/quiche/src/quiche/common/platform/api/quiche_file_utils.cc",
-        "net/third_party/quiche/src/quiche/common/platform/default/quiche_platform_impl/quiche_file_utils_impl.cc",
-        "net/third_party/quiche/src/quiche/quic/core/chlo_extractor.cc",
-        "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_server_stream_base.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_buffered_packet_store.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_dispatcher.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_packet_writer_wrapper.cc",
-        "net/third_party/quiche/src/quiche/quic/core/quic_time_wait_list_manager.cc",
-        "net/third_party/quiche/src/quiche/quic/core/tls_chlo_extractor.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_backend_response.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_client_base.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_memory_cache_backend.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_simple_client_session.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_simple_client_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_simple_crypto_server_stream_helper.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_simple_dispatcher.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_simple_server_session.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_simple_server_stream.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_spdy_client_base.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_tcp_like_trace_converter.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/quic_url.cc",
-        "net/third_party/quiche/src/quiche/quic/tools/simple_ticket_crypter.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_dns_dns__testing",
-        "cronet_aml_net_dns_public_public__testing",
-        "cronet_aml_net_http_transport_security_state_generated_files__testing",
-        "cronet_aml_net_net__testing",
-        "cronet_aml_net_net_deps__testing",
-        "cronet_aml_net_net_public_deps__testing",
-        "cronet_aml_net_preload_decoder__testing",
-        "cronet_aml_net_third_party_quiche_quiche__testing",
-        "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-        "cronet_aml_net_uri_template__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_brotli_common__testing",
-        "cronet_aml_third_party_brotli_dec__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "net/third_party/quiche/overrides/",
-        "net/third_party/quiche/src/",
-        "net/third_party/quiche/src/quiche/common/platform/default/",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/tools/huffman_trie:huffman_trie_generator_sources__testing
-cc_library_static {
-    name: "cronet_aml_net_tools_huffman_trie_huffman_trie_generator_sources__testing",
-    srcs: [
-        "net/tools/huffman_trie/bit_writer.cc",
-        "net/tools/huffman_trie/huffman/huffman_builder.cc",
-        "net/tools/huffman_trie/trie/trie_bit_buffer.cc",
-        "net/tools/huffman_trie/trie/trie_writer.cc",
-        "net/tools/huffman_trie/trie_entry.cc",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    host_supported: true,
-    device_supported: false,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_AURA=1",
-        "-DUSE_OZONE=1",
-        "-DUSE_UDEV",
-        "-D_FILE_OFFSET_BITS=64",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LARGEFILE64_SOURCE",
-        "-D_LARGEFILE_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fstack-protector",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-        "-msse3",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-}
-
-// GN: //net/tools/tld_cleanup:tld_cleanup__testing
-cc_library_static {
-    name: "cronet_aml_net_tools_tld_cleanup_tld_cleanup__testing",
-    srcs: [
-        "net/tools/tld_cleanup/tld_cleanup_util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-        "cronet_aml_url_url__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/tools/transport_security_state_generator:transport_security_state_generator__testing
-cc_binary {
-    name: "cronet_aml_net_tools_transport_security_state_generator_transport_security_state_generator__testing",
-    srcs: [
-        "net/tools/transport_security_state_generator/transport_security_state_generator.cc",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_buildtools_third_party_libc___libc____testing",
-        "cronet_aml_buildtools_third_party_libc__abi_libc__abi__testing",
-        "cronet_aml_crypto_crypto__testing",
-        "cronet_aml_net_tools_huffman_trie_huffman_trie_generator_sources__testing",
-        "cronet_aml_net_tools_transport_security_state_generator_transport_security_state_generator_sources__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    host_supported: true,
-    device_supported: false,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_AURA=1",
-        "-DUSE_OZONE=1",
-        "-DUSE_UDEV",
-        "-D_FILE_OFFSET_BITS=64",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LARGEFILE64_SOURCE",
-        "-D_LARGEFILE_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fstack-protector",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-        "-msse3",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-}
-
-// GN: //net/tools/transport_security_state_generator:transport_security_state_generator_sources__testing
-cc_library_static {
-    name: "cronet_aml_net_tools_transport_security_state_generator_transport_security_state_generator_sources__testing",
-    srcs: [
-        "net/tools/transport_security_state_generator/cert_util.cc",
-        "net/tools/transport_security_state_generator/input_file_parsers.cc",
-        "net/tools/transport_security_state_generator/pinset.cc",
-        "net/tools/transport_security_state_generator/pinsets.cc",
-        "net/tools/transport_security_state_generator/preloaded_state_generator.cc",
-        "net/tools/transport_security_state_generator/spki_hash.cc",
-        "net/tools/transport_security_state_generator/transport_security_state_entry.cc",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_net_tools_huffman_trie_huffman_trie_generator_sources__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    host_supported: true,
-    device_supported: false,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_AURA=1",
-        "-DUSE_OZONE=1",
-        "-DUSE_UDEV",
-        "-D_FILE_OFFSET_BITS=64",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LARGEFILE64_SOURCE",
-        "-D_LARGEFILE_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fstack-protector",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-        "-msse3",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-}
-
-// GN: //net/traffic_annotation:traffic_annotation
-cc_library_static {
-    name: "cronet_aml_net_traffic_annotation_traffic_annotation",
-    srcs: [
-        "net/traffic_annotation/network_traffic_annotation_android.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net/traffic_annotation:traffic_annotation__testing
-cc_library_static {
-    name: "cronet_aml_net_traffic_annotation_traffic_annotation__testing",
-    srcs: [
-        "net/traffic_annotation/network_traffic_annotation_android.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:uri_template
-cc_library_static {
-    name: "cronet_aml_net_uri_template",
-    srcs: [
-        "net/third_party/uri_template/uri_template.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DIS_URI_TEMPLATE_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //net:uri_template__testing
-cc_library_static {
-    name: "cronet_aml_net_uri_template__testing",
-    srcs: [
-        "net/third_party/uri_template/uri_template.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DIS_URI_TEMPLATE_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //testing/android/native_test:native_test_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_testing_android_native_test_native_test_jni_headers__testing",
-    srcs: [
-        "testing/android/native_test/java/src/org/chromium/native_test/MainRunner.java",
-        "testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/testing/android/native_test/native_test_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "MainRunner_jni.h " +
-         "--output_name " +
-         "NativeTest_jni.h " +
-         "--input_file " +
-         "$(location testing/android/native_test/java/src/org/chromium/native_test/MainRunner.java) " +
-         "--input_file " +
-         "$(location testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java)",
-    out: [
-        "testing/android/native_test/native_test_jni_headers/MainRunner_jni.h",
-        "testing/android/native_test/native_test_jni_headers/NativeTest_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //testing/android/native_test:native_test_native_code__testing
-cc_library_static {
-    name: "cronet_aml_testing_android_native_test_native_test_native_code__testing",
-    srcs: [
-        "testing/android/native_test/native_test_jni_onload.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_test_test_support__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_testing_android_native_test_native_test_support__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //testing/android/native_test:native_test_support__testing
-cc_library_static {
-    name: "cronet_aml_testing_android_native_test_native_test_support__testing",
-    srcs: [
-        "testing/android/native_test/main_runner.cc",
-        "testing/android/native_test/native_test_launcher.cc",
-        "testing/android/native_test/native_test_util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_i18n__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_test_test_config__testing",
-        "cronet_aml_base_test_test_support__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_testing_gtest_gtest__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_ced_ced__testing",
-        "cronet_aml_third_party_googletest_gmock__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-        "cronet_aml_third_party_libxml_xml_reader__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_testing_android_native_test_native_test_jni_headers__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_testing_android_native_test_native_test_jni_headers__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/ced/src/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //testing/gtest:gtest__testing
-cc_library_static {
-    name: "cronet_aml_testing_gtest_gtest__testing",
-    srcs: [
-        "testing/gtest/empty.cc",
-        "testing/multiprocess_func_list.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUNIT_TEST",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googletest/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:base
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_base",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
-        "third_party/abseil-cpp/absl/base/internal/spinlock.cc",
-        "third_party/abseil-cpp/absl/base/internal/sysinfo.cc",
-        "third_party/abseil-cpp/absl/base/internal/thread_identity.cc",
-        "third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:base__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/cycleclock.cc",
-        "third_party/abseil-cpp/absl/base/internal/spinlock.cc",
-        "third_party/abseil-cpp/absl/base/internal/sysinfo.cc",
-        "third_party/abseil-cpp/absl/base/internal/thread_identity.cc",
-        "third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:log_severity
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/log_severity.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:log_severity__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/log_severity.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:malloc_internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:malloc_internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:raw_logging_internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:raw_logging_internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/raw_logging.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:spinlock_wait
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:spinlock_wait__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:strerror
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/strerror.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:strerror__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/strerror.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:throw_delegate
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/base:throw_delegate__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/base/internal/throw_delegate.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/container:hashtablez_sampler
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-    srcs: [
-        "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
-        "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/container:hashtablez_sampler__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
-        "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/container:raw_hash_set
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-    srcs: [
-        "third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/container:raw_hash_set__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:debugging_internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
-        "third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
-        "third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:debugging_internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
-        "third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
-        "third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:demangle_internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:demangle_internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/internal/demangle.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:examine_stack
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:examine_stack__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:failure_signal_handler
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:failure_signal_handler__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:stacktrace
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/stacktrace.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:stacktrace__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/stacktrace.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:symbolize
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/symbolize.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/debugging:symbolize__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/debugging/symbolize.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/hash:city
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-    srcs: [
-        "third_party/abseil-cpp/absl/hash/internal/city.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/hash:city__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/hash/internal/city.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/hash:hash
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-    srcs: [
-        "third_party/abseil-cpp/absl/hash/internal/hash.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/hash:hash__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/hash/internal/hash.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/hash:low_level_hash
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-    srcs: [
-        "third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/hash:low_level_hash__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/numeric:int128
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-    srcs: [
-        "third_party/abseil-cpp/absl/numeric/int128.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/numeric:int128__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/numeric/int128.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/profiling:exponential_biased
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-    srcs: [
-        "third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/profiling:exponential_biased__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random:distributions
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/discrete_distribution.cc",
-        "third_party/abseil-cpp/absl/random/gaussian_distribution.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random:distributions__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/discrete_distribution.cc",
-        "third_party/abseil-cpp/absl/random/gaussian_distribution.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:platform
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
-    ],
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:platform__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc",
-    ],
-    host_supported: true,
-    generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_build_chromeos_buildflags__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:pool_urbg
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:pool_urbg__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/pool_urbg.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_detect.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes_impl
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen_hwaes_impl__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen_slow
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:randen_slow__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/randen_slow.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:seed_material
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/seed_material.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random/internal:seed_material__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/internal/seed_material.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random:seed_gen_exception
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random:seed_gen_exception__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/seed_gen_exception.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random:seed_sequences
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/seed_sequences.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/random:seed_sequences__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/random/seed_sequences.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/status:status
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_status_status",
-    srcs: [
-        "third_party/abseil-cpp/absl/status/status.cc",
-        "third_party/abseil-cpp/absl/status/status_payload_printer.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/status:status__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/status/status.cc",
-        "third_party/abseil-cpp/absl/status/status_payload_printer.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/status:statusor
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-    srcs: [
-        "third_party/abseil-cpp/absl/status/statusor.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/status:statusor__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/status/statusor.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cord
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/cord.cc",
-        "third_party/abseil-cpp/absl/strings/cord_analysis.cc",
-        "third_party/abseil-cpp/absl/strings/cord_buffer.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cord__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/cord.cc",
-        "third_party/abseil-cpp/absl/strings/cord_analysis.cc",
-        "third_party/abseil-cpp/absl/strings/cord_buffer.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cord_internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cord_internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cord_internal.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc",
-        "third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cordz_functions
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cordz_functions__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cordz_handle
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cordz_handle__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cordz_info
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:cordz_info__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/cordz_info.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/escaping.cc",
-        "third_party/abseil-cpp/absl/strings/internal/ostringstream.cc",
-        "third_party/abseil-cpp/absl/strings/internal/utf8.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/escaping.cc",
-        "third_party/abseil-cpp/absl/strings/internal/ostringstream.cc",
-        "third_party/abseil-cpp/absl/strings/internal/utf8.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:str_format_internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/output.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:str_format_internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/output.cc",
-        "third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:strings
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/ascii.cc",
-        "third_party/abseil-cpp/absl/strings/charconv.cc",
-        "third_party/abseil-cpp/absl/strings/escaping.cc",
-        "third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
-        "third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc",
-        "third_party/abseil-cpp/absl/strings/internal/memutil.cc",
-        "third_party/abseil-cpp/absl/strings/match.cc",
-        "third_party/abseil-cpp/absl/strings/numbers.cc",
-        "third_party/abseil-cpp/absl/strings/str_cat.cc",
-        "third_party/abseil-cpp/absl/strings/str_replace.cc",
-        "third_party/abseil-cpp/absl/strings/str_split.cc",
-        "third_party/abseil-cpp/absl/strings/string_view.cc",
-        "third_party/abseil-cpp/absl/strings/substitute.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/strings:strings__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/strings/ascii.cc",
-        "third_party/abseil-cpp/absl/strings/charconv.cc",
-        "third_party/abseil-cpp/absl/strings/escaping.cc",
-        "third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
-        "third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc",
-        "third_party/abseil-cpp/absl/strings/internal/memutil.cc",
-        "third_party/abseil-cpp/absl/strings/match.cc",
-        "third_party/abseil-cpp/absl/strings/numbers.cc",
-        "third_party/abseil-cpp/absl/strings/str_cat.cc",
-        "third_party/abseil-cpp/absl/strings/str_replace.cc",
-        "third_party/abseil-cpp/absl/strings/str_split.cc",
-        "third_party/abseil-cpp/absl/strings/string_view.cc",
-        "third_party/abseil-cpp/absl/strings/substitute.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/synchronization:graphcycles_internal
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-    srcs: [
-        "third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/synchronization:graphcycles_internal__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/synchronization:synchronization
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-    srcs: [
-        "third_party/abseil-cpp/absl/synchronization/barrier.cc",
-        "third_party/abseil-cpp/absl/synchronization/blocking_counter.cc",
-        "third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
-        "third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
-        "third_party/abseil-cpp/absl/synchronization/internal/waiter.cc",
-        "third_party/abseil-cpp/absl/synchronization/mutex.cc",
-        "third_party/abseil-cpp/absl/synchronization/notification.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/synchronization:synchronization__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/synchronization/barrier.cc",
-        "third_party/abseil-cpp/absl/synchronization/blocking_counter.cc",
-        "third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
-        "third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
-        "third_party/abseil-cpp/absl/synchronization/internal/waiter.cc",
-        "third_party/abseil-cpp/absl/synchronization/mutex.cc",
-        "third_party/abseil-cpp/absl/synchronization/notification.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/time/internal/cctz:civil_time
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-    srcs: [
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/time/internal/cctz:civil_time__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/time/internal/cctz:time_zone
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-    srcs: [
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/time/internal/cctz:time_zone__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
-        "third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/time:time
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_time_time",
-    srcs: [
-        "third_party/abseil-cpp/absl/time/civil_time.cc",
-        "third_party/abseil-cpp/absl/time/clock.cc",
-        "third_party/abseil-cpp/absl/time/duration.cc",
-        "third_party/abseil-cpp/absl/time/format.cc",
-        "third_party/abseil-cpp/absl/time/time.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/time:time__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/time/civil_time.cc",
-        "third_party/abseil-cpp/absl/time/clock.cc",
-        "third_party/abseil-cpp/absl/time/duration.cc",
-        "third_party/abseil-cpp/absl/time/format.cc",
-        "third_party/abseil-cpp/absl/time/time.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/types:bad_optional_access
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-    srcs: [
-        "third_party/abseil-cpp/absl/types/bad_optional_access.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/types:bad_optional_access__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/types/bad_optional_access.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/types:bad_variant_access
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-    srcs: [
-        "third_party/abseil-cpp/absl/types/bad_variant_access.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/abseil-cpp/absl/types:bad_variant_access__testing
-cc_library_static {
-    name: "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-    srcs: [
-        "third_party/abseil-cpp/absl/types/bad_variant_access.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DABSL_ALLOCATOR_NOTHROW=1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/android_ndk:cpu_features
-cc_library_static {
-    name: "cronet_aml_third_party_android_ndk_cpu_features",
-    srcs: [
-        "third_party/android_ndk/sources/android/cpufeatures/cpu-features.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/android_ndk/sources/android/cpufeatures/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/android_ndk:cpu_features__testing
-cc_library_static {
-    name: "cronet_aml_third_party_android_ndk_cpu_features__testing",
-    srcs: [
-        "third_party/android_ndk/sources/android/cpufeatures/cpu-features.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/android_ndk/sources/android/cpufeatures/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/ashmem:ashmem
-cc_library_static {
-    name: "cronet_aml_third_party_ashmem_ashmem",
-    srcs: [
-        "third_party/ashmem/ashmem-dev.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/ashmem:ashmem__testing
-cc_library_static {
-    name: "cronet_aml_third_party_ashmem_ashmem__testing",
-    srcs: [
-        "third_party/ashmem/ashmem-dev.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/boringssl:boringssl
-cc_library_static {
-    name: "cronet_aml_third_party_boringssl_boringssl",
-    srcs: [
-        "third_party/boringssl/err_data.c",
-        "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
-        "third_party/boringssl/src/crypto/asn1/a_bool.c",
-        "third_party/boringssl/src/crypto/asn1/a_d2i_fp.c",
-        "third_party/boringssl/src/crypto/asn1/a_dup.c",
-        "third_party/boringssl/src/crypto/asn1/a_gentm.c",
-        "third_party/boringssl/src/crypto/asn1/a_i2d_fp.c",
-        "third_party/boringssl/src/crypto/asn1/a_int.c",
-        "third_party/boringssl/src/crypto/asn1/a_mbstr.c",
-        "third_party/boringssl/src/crypto/asn1/a_object.c",
-        "third_party/boringssl/src/crypto/asn1/a_octet.c",
-        "third_party/boringssl/src/crypto/asn1/a_print.c",
-        "third_party/boringssl/src/crypto/asn1/a_strex.c",
-        "third_party/boringssl/src/crypto/asn1/a_strnid.c",
-        "third_party/boringssl/src/crypto/asn1/a_time.c",
-        "third_party/boringssl/src/crypto/asn1/a_type.c",
-        "third_party/boringssl/src/crypto/asn1/a_utctm.c",
-        "third_party/boringssl/src/crypto/asn1/a_utf8.c",
-        "third_party/boringssl/src/crypto/asn1/asn1_lib.c",
-        "third_party/boringssl/src/crypto/asn1/asn1_par.c",
-        "third_party/boringssl/src/crypto/asn1/asn_pack.c",
-        "third_party/boringssl/src/crypto/asn1/f_int.c",
-        "third_party/boringssl/src/crypto/asn1/f_string.c",
-        "third_party/boringssl/src/crypto/asn1/posix_time.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_dec.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_enc.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_fre.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_new.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_typ.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_utl.c",
-        "third_party/boringssl/src/crypto/base64/base64.c",
-        "third_party/boringssl/src/crypto/bio/bio.c",
-        "third_party/boringssl/src/crypto/bio/bio_mem.c",
-        "third_party/boringssl/src/crypto/bio/connect.c",
-        "third_party/boringssl/src/crypto/bio/fd.c",
-        "third_party/boringssl/src/crypto/bio/file.c",
-        "third_party/boringssl/src/crypto/bio/hexdump.c",
-        "third_party/boringssl/src/crypto/bio/pair.c",
-        "third_party/boringssl/src/crypto/bio/printf.c",
-        "third_party/boringssl/src/crypto/bio/socket.c",
-        "third_party/boringssl/src/crypto/bio/socket_helper.c",
-        "third_party/boringssl/src/crypto/blake2/blake2.c",
-        "third_party/boringssl/src/crypto/bn_extra/bn_asn1.c",
-        "third_party/boringssl/src/crypto/bn_extra/convert.c",
-        "third_party/boringssl/src/crypto/buf/buf.c",
-        "third_party/boringssl/src/crypto/bytestring/asn1_compat.c",
-        "third_party/boringssl/src/crypto/bytestring/ber.c",
-        "third_party/boringssl/src/crypto/bytestring/cbb.c",
-        "third_party/boringssl/src/crypto/bytestring/cbs.c",
-        "third_party/boringssl/src/crypto/bytestring/unicode.c",
-        "third_party/boringssl/src/crypto/chacha/chacha.c",
-        "third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c",
-        "third_party/boringssl/src/crypto/cipher_extra/derive_key.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_des.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_null.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_rc2.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_rc4.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_tls.c",
-        "third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c",
-        "third_party/boringssl/src/crypto/conf/conf.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_apple.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_fuchsia.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_linux.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_win.c",
-        "third_party/boringssl/src/crypto/cpu_arm.c",
-        "third_party/boringssl/src/crypto/cpu_arm_linux.c",
-        "third_party/boringssl/src/crypto/cpu_intel.c",
-        "third_party/boringssl/src/crypto/cpu_ppc64le.c",
-        "third_party/boringssl/src/crypto/crypto.c",
-        "third_party/boringssl/src/crypto/curve25519/curve25519.c",
-        "third_party/boringssl/src/crypto/curve25519/spake25519.c",
-        "third_party/boringssl/src/crypto/des/des.c",
-        "third_party/boringssl/src/crypto/dh_extra/dh_asn1.c",
-        "third_party/boringssl/src/crypto/dh_extra/params.c",
-        "third_party/boringssl/src/crypto/digest_extra/digest_extra.c",
-        "third_party/boringssl/src/crypto/dsa/dsa.c",
-        "third_party/boringssl/src/crypto/dsa/dsa_asn1.c",
-        "third_party/boringssl/src/crypto/ec_extra/ec_asn1.c",
-        "third_party/boringssl/src/crypto/ec_extra/ec_derive.c",
-        "third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c",
-        "third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c",
-        "third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c",
-        "third_party/boringssl/src/crypto/engine/engine.c",
-        "third_party/boringssl/src/crypto/err/err.c",
-        "third_party/boringssl/src/crypto/evp/evp.c",
-        "third_party/boringssl/src/crypto/evp/evp_asn1.c",
-        "third_party/boringssl/src/crypto/evp/evp_ctx.c",
-        "third_party/boringssl/src/crypto/evp/p_dsa_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_ec.c",
-        "third_party/boringssl/src/crypto/evp/p_ec_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_ed25519.c",
-        "third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_hkdf.c",
-        "third_party/boringssl/src/crypto/evp/p_rsa.c",
-        "third_party/boringssl/src/crypto/evp/p_rsa_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_x25519.c",
-        "third_party/boringssl/src/crypto/evp/p_x25519_asn1.c",
-        "third_party/boringssl/src/crypto/evp/pbkdf.c",
-        "third_party/boringssl/src/crypto/evp/print.c",
-        "third_party/boringssl/src/crypto/evp/scrypt.c",
-        "third_party/boringssl/src/crypto/evp/sign.c",
-        "third_party/boringssl/src/crypto/ex_data.c",
-        "third_party/boringssl/src/crypto/fipsmodule/bcm.c",
-        "third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c",
-        "third_party/boringssl/src/crypto/hkdf/hkdf.c",
-        "third_party/boringssl/src/crypto/hpke/hpke.c",
-        "third_party/boringssl/src/crypto/hrss/hrss.c",
-        "third_party/boringssl/src/crypto/lhash/lhash.c",
-        "third_party/boringssl/src/crypto/mem.c",
-        "third_party/boringssl/src/crypto/obj/obj.c",
-        "third_party/boringssl/src/crypto/obj/obj_xref.c",
-        "third_party/boringssl/src/crypto/pem/pem_all.c",
-        "third_party/boringssl/src/crypto/pem/pem_info.c",
-        "third_party/boringssl/src/crypto/pem/pem_lib.c",
-        "third_party/boringssl/src/crypto/pem/pem_oth.c",
-        "third_party/boringssl/src/crypto/pem/pem_pk8.c",
-        "third_party/boringssl/src/crypto/pem/pem_pkey.c",
-        "third_party/boringssl/src/crypto/pem/pem_x509.c",
-        "third_party/boringssl/src/crypto/pem/pem_xaux.c",
-        "third_party/boringssl/src/crypto/pkcs7/pkcs7.c",
-        "third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c",
-        "third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c",
-        "third_party/boringssl/src/crypto/pkcs8/pkcs8.c",
-        "third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c",
-        "third_party/boringssl/src/crypto/poly1305/poly1305.c",
-        "third_party/boringssl/src/crypto/poly1305/poly1305_arm.c",
-        "third_party/boringssl/src/crypto/poly1305/poly1305_vec.c",
-        "third_party/boringssl/src/crypto/pool/pool.c",
-        "third_party/boringssl/src/crypto/rand_extra/deterministic.c",
-        "third_party/boringssl/src/crypto/rand_extra/forkunsafe.c",
-        "third_party/boringssl/src/crypto/rand_extra/fuchsia.c",
-        "third_party/boringssl/src/crypto/rand_extra/passive.c",
-        "third_party/boringssl/src/crypto/rand_extra/rand_extra.c",
-        "third_party/boringssl/src/crypto/rand_extra/windows.c",
-        "third_party/boringssl/src/crypto/rc4/rc4.c",
-        "third_party/boringssl/src/crypto/refcount_c11.c",
-        "third_party/boringssl/src/crypto/refcount_lock.c",
-        "third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c",
-        "third_party/boringssl/src/crypto/rsa_extra/rsa_print.c",
-        "third_party/boringssl/src/crypto/siphash/siphash.c",
-        "third_party/boringssl/src/crypto/stack/stack.c",
-        "third_party/boringssl/src/crypto/thread.c",
-        "third_party/boringssl/src/crypto/thread_none.c",
-        "third_party/boringssl/src/crypto/thread_pthread.c",
-        "third_party/boringssl/src/crypto/thread_win.c",
-        "third_party/boringssl/src/crypto/trust_token/pmbtoken.c",
-        "third_party/boringssl/src/crypto/trust_token/trust_token.c",
-        "third_party/boringssl/src/crypto/trust_token/voprf.c",
-        "third_party/boringssl/src/crypto/x509/a_digest.c",
-        "third_party/boringssl/src/crypto/x509/a_sign.c",
-        "third_party/boringssl/src/crypto/x509/a_verify.c",
-        "third_party/boringssl/src/crypto/x509/algorithm.c",
-        "third_party/boringssl/src/crypto/x509/asn1_gen.c",
-        "third_party/boringssl/src/crypto/x509/by_dir.c",
-        "third_party/boringssl/src/crypto/x509/by_file.c",
-        "third_party/boringssl/src/crypto/x509/i2d_pr.c",
-        "third_party/boringssl/src/crypto/x509/name_print.c",
-        "third_party/boringssl/src/crypto/x509/rsa_pss.c",
-        "third_party/boringssl/src/crypto/x509/t_crl.c",
-        "third_party/boringssl/src/crypto/x509/t_req.c",
-        "third_party/boringssl/src/crypto/x509/t_x509.c",
-        "third_party/boringssl/src/crypto/x509/t_x509a.c",
-        "third_party/boringssl/src/crypto/x509/x509.c",
-        "third_party/boringssl/src/crypto/x509/x509_att.c",
-        "third_party/boringssl/src/crypto/x509/x509_cmp.c",
-        "third_party/boringssl/src/crypto/x509/x509_d2.c",
-        "third_party/boringssl/src/crypto/x509/x509_def.c",
-        "third_party/boringssl/src/crypto/x509/x509_ext.c",
-        "third_party/boringssl/src/crypto/x509/x509_lu.c",
-        "third_party/boringssl/src/crypto/x509/x509_obj.c",
-        "third_party/boringssl/src/crypto/x509/x509_req.c",
-        "third_party/boringssl/src/crypto/x509/x509_set.c",
-        "third_party/boringssl/src/crypto/x509/x509_trs.c",
-        "third_party/boringssl/src/crypto/x509/x509_txt.c",
-        "third_party/boringssl/src/crypto/x509/x509_v3.c",
-        "third_party/boringssl/src/crypto/x509/x509_vfy.c",
-        "third_party/boringssl/src/crypto/x509/x509_vpm.c",
-        "third_party/boringssl/src/crypto/x509/x509cset.c",
-        "third_party/boringssl/src/crypto/x509/x509name.c",
-        "third_party/boringssl/src/crypto/x509/x509rset.c",
-        "third_party/boringssl/src/crypto/x509/x509spki.c",
-        "third_party/boringssl/src/crypto/x509/x_algor.c",
-        "third_party/boringssl/src/crypto/x509/x_all.c",
-        "third_party/boringssl/src/crypto/x509/x_attrib.c",
-        "third_party/boringssl/src/crypto/x509/x_crl.c",
-        "third_party/boringssl/src/crypto/x509/x_exten.c",
-        "third_party/boringssl/src/crypto/x509/x_info.c",
-        "third_party/boringssl/src/crypto/x509/x_name.c",
-        "third_party/boringssl/src/crypto/x509/x_pkey.c",
-        "third_party/boringssl/src/crypto/x509/x_pubkey.c",
-        "third_party/boringssl/src/crypto/x509/x_req.c",
-        "third_party/boringssl/src/crypto/x509/x_sig.c",
-        "third_party/boringssl/src/crypto/x509/x_spki.c",
-        "third_party/boringssl/src/crypto/x509/x_val.c",
-        "third_party/boringssl/src/crypto/x509/x_x509.c",
-        "third_party/boringssl/src/crypto/x509/x_x509a.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_cache.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_data.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_map.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_node.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_tree.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_akey.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_akeya.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_alt.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_bcons.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_bitst.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_conf.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_cpols.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_crld.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_enum.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_extku.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_genn.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_ia5.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_info.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_int.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_lib.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_ncons.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_ocsp.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pci.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pcia.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pcons.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pmaps.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_prn.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_purp.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_skey.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_utl.c",
-        "third_party/boringssl/src/ssl/bio_ssl.cc",
-        "third_party/boringssl/src/ssl/d1_both.cc",
-        "third_party/boringssl/src/ssl/d1_lib.cc",
-        "third_party/boringssl/src/ssl/d1_pkt.cc",
-        "third_party/boringssl/src/ssl/d1_srtp.cc",
-        "third_party/boringssl/src/ssl/dtls_method.cc",
-        "third_party/boringssl/src/ssl/dtls_record.cc",
-        "third_party/boringssl/src/ssl/encrypted_client_hello.cc",
-        "third_party/boringssl/src/ssl/extensions.cc",
-        "third_party/boringssl/src/ssl/handoff.cc",
-        "third_party/boringssl/src/ssl/handshake.cc",
-        "third_party/boringssl/src/ssl/handshake_client.cc",
-        "third_party/boringssl/src/ssl/handshake_server.cc",
-        "third_party/boringssl/src/ssl/s3_both.cc",
-        "third_party/boringssl/src/ssl/s3_lib.cc",
-        "third_party/boringssl/src/ssl/s3_pkt.cc",
-        "third_party/boringssl/src/ssl/ssl_aead_ctx.cc",
-        "third_party/boringssl/src/ssl/ssl_asn1.cc",
-        "third_party/boringssl/src/ssl/ssl_buffer.cc",
-        "third_party/boringssl/src/ssl/ssl_cert.cc",
-        "third_party/boringssl/src/ssl/ssl_cipher.cc",
-        "third_party/boringssl/src/ssl/ssl_file.cc",
-        "third_party/boringssl/src/ssl/ssl_key_share.cc",
-        "third_party/boringssl/src/ssl/ssl_lib.cc",
-        "third_party/boringssl/src/ssl/ssl_privkey.cc",
-        "third_party/boringssl/src/ssl/ssl_session.cc",
-        "third_party/boringssl/src/ssl/ssl_stat.cc",
-        "third_party/boringssl/src/ssl/ssl_transcript.cc",
-        "third_party/boringssl/src/ssl/ssl_versions.cc",
-        "third_party/boringssl/src/ssl/ssl_x509.cc",
-        "third_party/boringssl/src/ssl/t1_enc.cc",
-        "third_party/boringssl/src/ssl/tls13_both.cc",
-        "third_party/boringssl/src/ssl/tls13_client.cc",
-        "third_party/boringssl/src/ssl/tls13_enc.cc",
-        "third_party/boringssl/src/ssl/tls13_server.cc",
-        "third_party/boringssl/src/ssl/tls_method.cc",
-        "third_party/boringssl/src/ssl/tls_record.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DBORINGSSL_ALLOW_CXX_RUNTIME",
-        "-DBORINGSSL_IMPLEMENTATION",
-        "-DBORINGSSL_NO_STATIC_INITIALIZER",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DOPENSSL_SMALL",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/boringssl:boringssl__testing
-cc_library_static {
-    name: "cronet_aml_third_party_boringssl_boringssl__testing",
-    srcs: [
-        "third_party/boringssl/err_data.c",
-        "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
-        "third_party/boringssl/src/crypto/asn1/a_bool.c",
-        "third_party/boringssl/src/crypto/asn1/a_d2i_fp.c",
-        "third_party/boringssl/src/crypto/asn1/a_dup.c",
-        "third_party/boringssl/src/crypto/asn1/a_gentm.c",
-        "third_party/boringssl/src/crypto/asn1/a_i2d_fp.c",
-        "third_party/boringssl/src/crypto/asn1/a_int.c",
-        "third_party/boringssl/src/crypto/asn1/a_mbstr.c",
-        "third_party/boringssl/src/crypto/asn1/a_object.c",
-        "third_party/boringssl/src/crypto/asn1/a_octet.c",
-        "third_party/boringssl/src/crypto/asn1/a_print.c",
-        "third_party/boringssl/src/crypto/asn1/a_strex.c",
-        "third_party/boringssl/src/crypto/asn1/a_strnid.c",
-        "third_party/boringssl/src/crypto/asn1/a_time.c",
-        "third_party/boringssl/src/crypto/asn1/a_type.c",
-        "third_party/boringssl/src/crypto/asn1/a_utctm.c",
-        "third_party/boringssl/src/crypto/asn1/a_utf8.c",
-        "third_party/boringssl/src/crypto/asn1/asn1_lib.c",
-        "third_party/boringssl/src/crypto/asn1/asn1_par.c",
-        "third_party/boringssl/src/crypto/asn1/asn_pack.c",
-        "third_party/boringssl/src/crypto/asn1/f_int.c",
-        "third_party/boringssl/src/crypto/asn1/f_string.c",
-        "third_party/boringssl/src/crypto/asn1/posix_time.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_dec.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_enc.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_fre.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_new.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_typ.c",
-        "third_party/boringssl/src/crypto/asn1/tasn_utl.c",
-        "third_party/boringssl/src/crypto/base64/base64.c",
-        "third_party/boringssl/src/crypto/bio/bio.c",
-        "third_party/boringssl/src/crypto/bio/bio_mem.c",
-        "third_party/boringssl/src/crypto/bio/connect.c",
-        "third_party/boringssl/src/crypto/bio/fd.c",
-        "third_party/boringssl/src/crypto/bio/file.c",
-        "third_party/boringssl/src/crypto/bio/hexdump.c",
-        "third_party/boringssl/src/crypto/bio/pair.c",
-        "third_party/boringssl/src/crypto/bio/printf.c",
-        "third_party/boringssl/src/crypto/bio/socket.c",
-        "third_party/boringssl/src/crypto/bio/socket_helper.c",
-        "third_party/boringssl/src/crypto/blake2/blake2.c",
-        "third_party/boringssl/src/crypto/bn_extra/bn_asn1.c",
-        "third_party/boringssl/src/crypto/bn_extra/convert.c",
-        "third_party/boringssl/src/crypto/buf/buf.c",
-        "third_party/boringssl/src/crypto/bytestring/asn1_compat.c",
-        "third_party/boringssl/src/crypto/bytestring/ber.c",
-        "third_party/boringssl/src/crypto/bytestring/cbb.c",
-        "third_party/boringssl/src/crypto/bytestring/cbs.c",
-        "third_party/boringssl/src/crypto/bytestring/unicode.c",
-        "third_party/boringssl/src/crypto/chacha/chacha.c",
-        "third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c",
-        "third_party/boringssl/src/crypto/cipher_extra/derive_key.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_des.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_null.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_rc2.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_rc4.c",
-        "third_party/boringssl/src/crypto/cipher_extra/e_tls.c",
-        "third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c",
-        "third_party/boringssl/src/crypto/conf/conf.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_apple.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_fuchsia.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_linux.c",
-        "third_party/boringssl/src/crypto/cpu_aarch64_win.c",
-        "third_party/boringssl/src/crypto/cpu_arm.c",
-        "third_party/boringssl/src/crypto/cpu_arm_linux.c",
-        "third_party/boringssl/src/crypto/cpu_intel.c",
-        "third_party/boringssl/src/crypto/cpu_ppc64le.c",
-        "third_party/boringssl/src/crypto/crypto.c",
-        "third_party/boringssl/src/crypto/curve25519/curve25519.c",
-        "third_party/boringssl/src/crypto/curve25519/spake25519.c",
-        "third_party/boringssl/src/crypto/des/des.c",
-        "third_party/boringssl/src/crypto/dh_extra/dh_asn1.c",
-        "third_party/boringssl/src/crypto/dh_extra/params.c",
-        "third_party/boringssl/src/crypto/digest_extra/digest_extra.c",
-        "third_party/boringssl/src/crypto/dsa/dsa.c",
-        "third_party/boringssl/src/crypto/dsa/dsa_asn1.c",
-        "third_party/boringssl/src/crypto/ec_extra/ec_asn1.c",
-        "third_party/boringssl/src/crypto/ec_extra/ec_derive.c",
-        "third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c",
-        "third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c",
-        "third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c",
-        "third_party/boringssl/src/crypto/engine/engine.c",
-        "third_party/boringssl/src/crypto/err/err.c",
-        "third_party/boringssl/src/crypto/evp/evp.c",
-        "third_party/boringssl/src/crypto/evp/evp_asn1.c",
-        "third_party/boringssl/src/crypto/evp/evp_ctx.c",
-        "third_party/boringssl/src/crypto/evp/p_dsa_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_ec.c",
-        "third_party/boringssl/src/crypto/evp/p_ec_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_ed25519.c",
-        "third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_hkdf.c",
-        "third_party/boringssl/src/crypto/evp/p_rsa.c",
-        "third_party/boringssl/src/crypto/evp/p_rsa_asn1.c",
-        "third_party/boringssl/src/crypto/evp/p_x25519.c",
-        "third_party/boringssl/src/crypto/evp/p_x25519_asn1.c",
-        "third_party/boringssl/src/crypto/evp/pbkdf.c",
-        "third_party/boringssl/src/crypto/evp/print.c",
-        "third_party/boringssl/src/crypto/evp/scrypt.c",
-        "third_party/boringssl/src/crypto/evp/sign.c",
-        "third_party/boringssl/src/crypto/ex_data.c",
-        "third_party/boringssl/src/crypto/fipsmodule/bcm.c",
-        "third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c",
-        "third_party/boringssl/src/crypto/hkdf/hkdf.c",
-        "third_party/boringssl/src/crypto/hpke/hpke.c",
-        "third_party/boringssl/src/crypto/hrss/hrss.c",
-        "third_party/boringssl/src/crypto/lhash/lhash.c",
-        "third_party/boringssl/src/crypto/mem.c",
-        "third_party/boringssl/src/crypto/obj/obj.c",
-        "third_party/boringssl/src/crypto/obj/obj_xref.c",
-        "third_party/boringssl/src/crypto/pem/pem_all.c",
-        "third_party/boringssl/src/crypto/pem/pem_info.c",
-        "third_party/boringssl/src/crypto/pem/pem_lib.c",
-        "third_party/boringssl/src/crypto/pem/pem_oth.c",
-        "third_party/boringssl/src/crypto/pem/pem_pk8.c",
-        "third_party/boringssl/src/crypto/pem/pem_pkey.c",
-        "third_party/boringssl/src/crypto/pem/pem_x509.c",
-        "third_party/boringssl/src/crypto/pem/pem_xaux.c",
-        "third_party/boringssl/src/crypto/pkcs7/pkcs7.c",
-        "third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c",
-        "third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c",
-        "third_party/boringssl/src/crypto/pkcs8/pkcs8.c",
-        "third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c",
-        "third_party/boringssl/src/crypto/poly1305/poly1305.c",
-        "third_party/boringssl/src/crypto/poly1305/poly1305_arm.c",
-        "third_party/boringssl/src/crypto/poly1305/poly1305_vec.c",
-        "third_party/boringssl/src/crypto/pool/pool.c",
-        "third_party/boringssl/src/crypto/rand_extra/deterministic.c",
-        "third_party/boringssl/src/crypto/rand_extra/forkunsafe.c",
-        "third_party/boringssl/src/crypto/rand_extra/fuchsia.c",
-        "third_party/boringssl/src/crypto/rand_extra/passive.c",
-        "third_party/boringssl/src/crypto/rand_extra/rand_extra.c",
-        "third_party/boringssl/src/crypto/rand_extra/windows.c",
-        "third_party/boringssl/src/crypto/rc4/rc4.c",
-        "third_party/boringssl/src/crypto/refcount_c11.c",
-        "third_party/boringssl/src/crypto/refcount_lock.c",
-        "third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c",
-        "third_party/boringssl/src/crypto/rsa_extra/rsa_print.c",
-        "third_party/boringssl/src/crypto/siphash/siphash.c",
-        "third_party/boringssl/src/crypto/stack/stack.c",
-        "third_party/boringssl/src/crypto/thread.c",
-        "third_party/boringssl/src/crypto/thread_none.c",
-        "third_party/boringssl/src/crypto/thread_pthread.c",
-        "third_party/boringssl/src/crypto/thread_win.c",
-        "third_party/boringssl/src/crypto/trust_token/pmbtoken.c",
-        "third_party/boringssl/src/crypto/trust_token/trust_token.c",
-        "third_party/boringssl/src/crypto/trust_token/voprf.c",
-        "third_party/boringssl/src/crypto/x509/a_digest.c",
-        "third_party/boringssl/src/crypto/x509/a_sign.c",
-        "third_party/boringssl/src/crypto/x509/a_verify.c",
-        "third_party/boringssl/src/crypto/x509/algorithm.c",
-        "third_party/boringssl/src/crypto/x509/asn1_gen.c",
-        "third_party/boringssl/src/crypto/x509/by_dir.c",
-        "third_party/boringssl/src/crypto/x509/by_file.c",
-        "third_party/boringssl/src/crypto/x509/i2d_pr.c",
-        "third_party/boringssl/src/crypto/x509/name_print.c",
-        "third_party/boringssl/src/crypto/x509/rsa_pss.c",
-        "third_party/boringssl/src/crypto/x509/t_crl.c",
-        "third_party/boringssl/src/crypto/x509/t_req.c",
-        "third_party/boringssl/src/crypto/x509/t_x509.c",
-        "third_party/boringssl/src/crypto/x509/t_x509a.c",
-        "third_party/boringssl/src/crypto/x509/x509.c",
-        "third_party/boringssl/src/crypto/x509/x509_att.c",
-        "third_party/boringssl/src/crypto/x509/x509_cmp.c",
-        "third_party/boringssl/src/crypto/x509/x509_d2.c",
-        "third_party/boringssl/src/crypto/x509/x509_def.c",
-        "third_party/boringssl/src/crypto/x509/x509_ext.c",
-        "third_party/boringssl/src/crypto/x509/x509_lu.c",
-        "third_party/boringssl/src/crypto/x509/x509_obj.c",
-        "third_party/boringssl/src/crypto/x509/x509_req.c",
-        "third_party/boringssl/src/crypto/x509/x509_set.c",
-        "third_party/boringssl/src/crypto/x509/x509_trs.c",
-        "third_party/boringssl/src/crypto/x509/x509_txt.c",
-        "third_party/boringssl/src/crypto/x509/x509_v3.c",
-        "third_party/boringssl/src/crypto/x509/x509_vfy.c",
-        "third_party/boringssl/src/crypto/x509/x509_vpm.c",
-        "third_party/boringssl/src/crypto/x509/x509cset.c",
-        "third_party/boringssl/src/crypto/x509/x509name.c",
-        "third_party/boringssl/src/crypto/x509/x509rset.c",
-        "third_party/boringssl/src/crypto/x509/x509spki.c",
-        "third_party/boringssl/src/crypto/x509/x_algor.c",
-        "third_party/boringssl/src/crypto/x509/x_all.c",
-        "third_party/boringssl/src/crypto/x509/x_attrib.c",
-        "third_party/boringssl/src/crypto/x509/x_crl.c",
-        "third_party/boringssl/src/crypto/x509/x_exten.c",
-        "third_party/boringssl/src/crypto/x509/x_info.c",
-        "third_party/boringssl/src/crypto/x509/x_name.c",
-        "third_party/boringssl/src/crypto/x509/x_pkey.c",
-        "third_party/boringssl/src/crypto/x509/x_pubkey.c",
-        "third_party/boringssl/src/crypto/x509/x_req.c",
-        "third_party/boringssl/src/crypto/x509/x_sig.c",
-        "third_party/boringssl/src/crypto/x509/x_spki.c",
-        "third_party/boringssl/src/crypto/x509/x_val.c",
-        "third_party/boringssl/src/crypto/x509/x_x509.c",
-        "third_party/boringssl/src/crypto/x509/x_x509a.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_cache.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_data.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_map.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_node.c",
-        "third_party/boringssl/src/crypto/x509v3/pcy_tree.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_akey.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_akeya.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_alt.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_bcons.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_bitst.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_conf.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_cpols.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_crld.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_enum.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_extku.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_genn.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_ia5.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_info.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_int.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_lib.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_ncons.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_ocsp.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pci.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pcia.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pcons.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_pmaps.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_prn.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_purp.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_skey.c",
-        "third_party/boringssl/src/crypto/x509v3/v3_utl.c",
-        "third_party/boringssl/src/ssl/bio_ssl.cc",
-        "third_party/boringssl/src/ssl/d1_both.cc",
-        "third_party/boringssl/src/ssl/d1_lib.cc",
-        "third_party/boringssl/src/ssl/d1_pkt.cc",
-        "third_party/boringssl/src/ssl/d1_srtp.cc",
-        "third_party/boringssl/src/ssl/dtls_method.cc",
-        "third_party/boringssl/src/ssl/dtls_record.cc",
-        "third_party/boringssl/src/ssl/encrypted_client_hello.cc",
-        "third_party/boringssl/src/ssl/extensions.cc",
-        "third_party/boringssl/src/ssl/handoff.cc",
-        "third_party/boringssl/src/ssl/handshake.cc",
-        "third_party/boringssl/src/ssl/handshake_client.cc",
-        "third_party/boringssl/src/ssl/handshake_server.cc",
-        "third_party/boringssl/src/ssl/s3_both.cc",
-        "third_party/boringssl/src/ssl/s3_lib.cc",
-        "third_party/boringssl/src/ssl/s3_pkt.cc",
-        "third_party/boringssl/src/ssl/ssl_aead_ctx.cc",
-        "third_party/boringssl/src/ssl/ssl_asn1.cc",
-        "third_party/boringssl/src/ssl/ssl_buffer.cc",
-        "third_party/boringssl/src/ssl/ssl_cert.cc",
-        "third_party/boringssl/src/ssl/ssl_cipher.cc",
-        "third_party/boringssl/src/ssl/ssl_file.cc",
-        "third_party/boringssl/src/ssl/ssl_key_share.cc",
-        "third_party/boringssl/src/ssl/ssl_lib.cc",
-        "third_party/boringssl/src/ssl/ssl_privkey.cc",
-        "third_party/boringssl/src/ssl/ssl_session.cc",
-        "third_party/boringssl/src/ssl/ssl_stat.cc",
-        "third_party/boringssl/src/ssl/ssl_transcript.cc",
-        "third_party/boringssl/src/ssl/ssl_versions.cc",
-        "third_party/boringssl/src/ssl/ssl_x509.cc",
-        "third_party/boringssl/src/ssl/t1_enc.cc",
-        "third_party/boringssl/src/ssl/tls13_both.cc",
-        "third_party/boringssl/src/ssl/tls13_client.cc",
-        "third_party/boringssl/src/ssl/tls13_enc.cc",
-        "third_party/boringssl/src/ssl/tls13_server.cc",
-        "third_party/boringssl/src/ssl/tls_method.cc",
-        "third_party/boringssl/src/ssl/tls_record.cc",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DBORINGSSL_ALLOW_CXX_RUNTIME",
-        "-DBORINGSSL_IMPLEMENTATION",
-        "-DBORINGSSL_NO_STATIC_INITIALIZER",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DOPENSSL_SMALL",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/boringssl/src/include/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/boringssl:boringssl_asm
-cc_library_static {
-    name: "cronet_aml_third_party_boringssl_boringssl_asm",
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            srcs: [
-                "third_party/boringssl/linux-arm/crypto/chacha/chacha-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/aesv8-armx32.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/armv4-mont.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/bsaes-armv7.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/ghash-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/ghashv8-armx32.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/sha1-armv4-large.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/sha256-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/sha512-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/vpaes-armv7.S",
-                "third_party/boringssl/linux-arm/crypto/test/trampoline-armv4.S",
-                "third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S",
-                "third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S",
-            ],
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "third_party/boringssl/linux-aarch64/crypto/chacha/chacha-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/armv8-mont.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/p256-armv8-asm.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha1-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/test/trampoline-armv8.S",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/aesni-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/bn-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/co-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/md5-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/sha1-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/sha256-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/sha512-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/vpaes-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/x86-mont.S",
-                "third_party/boringssl/linux-x86/crypto/test/trampoline-x86.S",
-            ],
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/md5-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S",
-                "third_party/boringssl/linux-x86_64/crypto/test/trampoline-x86_64.S",
-                "third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S",
-            ],
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/boringssl:boringssl_asm__testing
-cc_library_static {
-    name: "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/boringssl/src/include/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            srcs: [
-                "third_party/boringssl/linux-arm/crypto/chacha/chacha-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/aesv8-armx32.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/armv4-mont.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/bsaes-armv7.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/ghash-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/ghashv8-armx32.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/sha1-armv4-large.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/sha256-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/sha512-armv4.S",
-                "third_party/boringssl/linux-arm/crypto/fipsmodule/vpaes-armv7.S",
-                "third_party/boringssl/linux-arm/crypto/test/trampoline-armv4.S",
-                "third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S",
-                "third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            srcs: [
-                "third_party/boringssl/linux-aarch64/crypto/chacha/chacha-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/armv8-mont.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/p256-armv8-asm.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha1-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S",
-                "third_party/boringssl/linux-aarch64/crypto/test/trampoline-armv8.S",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            srcs: [
-                "third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/aesni-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/bn-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/co-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/md5-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/sha1-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/sha256-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/sha512-586.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/vpaes-x86.S",
-                "third_party/boringssl/linux-x86/crypto/fipsmodule/x86-mont.S",
-                "third_party/boringssl/linux-x86/crypto/test/trampoline-x86.S",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            srcs: [
-                "third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/md5-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S",
-                "third_party/boringssl/linux-x86_64/crypto/test/trampoline-x86_64.S",
-                "third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S",
-            ],
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            srcs: [
-                "third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/md5-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont.S",
-                "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S",
-                "third_party/boringssl/linux-x86_64/crypto/test/trampoline-x86_64.S",
-                "third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S",
-            ],
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/brotli:common
-cc_library_static {
-    name: "cronet_aml_third_party_brotli_common",
-    srcs: [
-        "third_party/brotli/common/constants.c",
-        "third_party/brotli/common/context.c",
-        "third_party/brotli/common/dictionary.c",
-        "third_party/brotli/common/platform.c",
-        "third_party/brotli/common/shared_dictionary.c",
-        "third_party/brotli/common/transform.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/brotli/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/brotli:common__testing
-cc_library_static {
-    name: "cronet_aml_third_party_brotli_common__testing",
-    srcs: [
-        "third_party/brotli/common/constants.c",
-        "third_party/brotli/common/context.c",
-        "third_party/brotli/common/dictionary.c",
-        "third_party/brotli/common/platform.c",
-        "third_party/brotli/common/shared_dictionary.c",
-        "third_party/brotli/common/transform.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/brotli/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/brotli:dec
-cc_library_static {
-    name: "cronet_aml_third_party_brotli_dec",
-    srcs: [
-        "third_party/brotli/dec/bit_reader.c",
-        "third_party/brotli/dec/decode.c",
-        "third_party/brotli/dec/huffman.c",
-        "third_party/brotli/dec/state.c",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_brotli_common",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/brotli/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/brotli:dec__testing
-cc_library_static {
-    name: "cronet_aml_third_party_brotli_dec__testing",
-    srcs: [
-        "third_party/brotli/dec/bit_reader.c",
-        "third_party/brotli/dec/decode.c",
-        "third_party/brotli/dec/huffman.c",
-        "third_party/brotli/dec/state.c",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_brotli_common__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/brotli/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/ced:ced__testing
-cc_library_static {
-    name: "cronet_aml_third_party_ced_ced__testing",
-    srcs: [
-        "third_party/ced/src/compact_enc_det/compact_enc_det.cc",
-        "third_party/ced/src/compact_enc_det/compact_enc_det_hint_code.cc",
-        "third_party/ced/src/util/encodings/encodings.cc",
-        "third_party/ced/src/util/languages/languages.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCOMPILER_GCC",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DHTML5_MODE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/ced/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/googletest:gmock__testing
-cc_library_static {
-    name: "cronet_aml_third_party_googletest_gmock__testing",
-    srcs: [
-        "third_party/googletest/src/googlemock/src/gmock-cardinalities.cc",
-        "third_party/googletest/src/googlemock/src/gmock-internal-utils.cc",
-        "third_party/googletest/src/googlemock/src/gmock-matchers.cc",
-        "third_party/googletest/src/googlemock/src/gmock-spec-builders.cc",
-        "third_party/googletest/src/googlemock/src/gmock.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_googletest_gtest__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googlemock/include/",
-        "third_party/googletest/src/googletest/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/googletest:gtest__testing
-cc_library_static {
-    name: "cronet_aml_third_party_googletest_gtest__testing",
-    srcs: [
-        "third_party/googletest/custom/gtest/internal/custom/chrome_custom_temp_dir.cc",
-        "third_party/googletest/custom/gtest/internal/custom/gtest_port_wrapper.cc",
-        "third_party/googletest/custom/gtest/internal/custom/stack_trace_getter.cc",
-        "third_party/googletest/src/googletest/src/gtest-assertion-result.cc",
-        "third_party/googletest/src/googletest/src/gtest-death-test.cc",
-        "third_party/googletest/src/googletest/src/gtest-filepath.cc",
-        "third_party/googletest/src/googletest/src/gtest-matchers.cc",
-        "third_party/googletest/src/googletest/src/gtest-printers.cc",
-        "third_party/googletest/src/googletest/src/gtest-test-part.cc",
-        "third_party/googletest/src/googletest/src/gtest-typed-test.cc",
-        "third_party/googletest/src/googletest/src/gtest.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGTEST_API_=",
-        "-DGTEST_HAS_ABSL=1",
-        "-DGTEST_HAS_POSIX_RE=0",
-        "-DGTEST_HAS_TR1_TUPLE=0",
-        "-DGTEST_LANG_CXX11=1",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-        "third_party/googletest/custom/",
-        "third_party/googletest/src/googletest/",
-        "third_party/googletest/src/googletest/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/icu:icui18n
-cc_library_static {
-    name: "cronet_aml_third_party_icu_icui18n",
-    srcs: [
-        "third_party/icu/source/i18n/alphaindex.cpp",
-        "third_party/icu/source/i18n/anytrans.cpp",
-        "third_party/icu/source/i18n/astro.cpp",
-        "third_party/icu/source/i18n/basictz.cpp",
-        "third_party/icu/source/i18n/bocsu.cpp",
-        "third_party/icu/source/i18n/brktrans.cpp",
-        "third_party/icu/source/i18n/buddhcal.cpp",
-        "third_party/icu/source/i18n/calendar.cpp",
-        "third_party/icu/source/i18n/casetrn.cpp",
-        "third_party/icu/source/i18n/cecal.cpp",
-        "third_party/icu/source/i18n/chnsecal.cpp",
-        "third_party/icu/source/i18n/choicfmt.cpp",
-        "third_party/icu/source/i18n/coleitr.cpp",
-        "third_party/icu/source/i18n/coll.cpp",
-        "third_party/icu/source/i18n/collation.cpp",
-        "third_party/icu/source/i18n/collationbuilder.cpp",
-        "third_party/icu/source/i18n/collationcompare.cpp",
-        "third_party/icu/source/i18n/collationdata.cpp",
-        "third_party/icu/source/i18n/collationdatabuilder.cpp",
-        "third_party/icu/source/i18n/collationdatareader.cpp",
-        "third_party/icu/source/i18n/collationdatawriter.cpp",
-        "third_party/icu/source/i18n/collationfastlatin.cpp",
-        "third_party/icu/source/i18n/collationfastlatinbuilder.cpp",
-        "third_party/icu/source/i18n/collationfcd.cpp",
-        "third_party/icu/source/i18n/collationiterator.cpp",
-        "third_party/icu/source/i18n/collationkeys.cpp",
-        "third_party/icu/source/i18n/collationroot.cpp",
-        "third_party/icu/source/i18n/collationrootelements.cpp",
-        "third_party/icu/source/i18n/collationruleparser.cpp",
-        "third_party/icu/source/i18n/collationsets.cpp",
-        "third_party/icu/source/i18n/collationsettings.cpp",
-        "third_party/icu/source/i18n/collationtailoring.cpp",
-        "third_party/icu/source/i18n/collationweights.cpp",
-        "third_party/icu/source/i18n/compactdecimalformat.cpp",
-        "third_party/icu/source/i18n/coptccal.cpp",
-        "third_party/icu/source/i18n/cpdtrans.cpp",
-        "third_party/icu/source/i18n/csdetect.cpp",
-        "third_party/icu/source/i18n/csmatch.cpp",
-        "third_party/icu/source/i18n/csr2022.cpp",
-        "third_party/icu/source/i18n/csrecog.cpp",
-        "third_party/icu/source/i18n/csrmbcs.cpp",
-        "third_party/icu/source/i18n/csrsbcs.cpp",
-        "third_party/icu/source/i18n/csrucode.cpp",
-        "third_party/icu/source/i18n/csrutf8.cpp",
-        "third_party/icu/source/i18n/curramt.cpp",
-        "third_party/icu/source/i18n/currfmt.cpp",
-        "third_party/icu/source/i18n/currpinf.cpp",
-        "third_party/icu/source/i18n/currunit.cpp",
-        "third_party/icu/source/i18n/dangical.cpp",
-        "third_party/icu/source/i18n/datefmt.cpp",
-        "third_party/icu/source/i18n/dayperiodrules.cpp",
-        "third_party/icu/source/i18n/dcfmtsym.cpp",
-        "third_party/icu/source/i18n/decContext.cpp",
-        "third_party/icu/source/i18n/decNumber.cpp",
-        "third_party/icu/source/i18n/decimfmt.cpp",
-        "third_party/icu/source/i18n/double-conversion-bignum-dtoa.cpp",
-        "third_party/icu/source/i18n/double-conversion-bignum.cpp",
-        "third_party/icu/source/i18n/double-conversion-cached-powers.cpp",
-        "third_party/icu/source/i18n/double-conversion-double-to-string.cpp",
-        "third_party/icu/source/i18n/double-conversion-fast-dtoa.cpp",
-        "third_party/icu/source/i18n/double-conversion-string-to-double.cpp",
-        "third_party/icu/source/i18n/double-conversion-strtod.cpp",
-        "third_party/icu/source/i18n/dtfmtsym.cpp",
-        "third_party/icu/source/i18n/dtitvfmt.cpp",
-        "third_party/icu/source/i18n/dtitvinf.cpp",
-        "third_party/icu/source/i18n/dtptngen.cpp",
-        "third_party/icu/source/i18n/dtrule.cpp",
-        "third_party/icu/source/i18n/erarules.cpp",
-        "third_party/icu/source/i18n/esctrn.cpp",
-        "third_party/icu/source/i18n/ethpccal.cpp",
-        "third_party/icu/source/i18n/fmtable.cpp",
-        "third_party/icu/source/i18n/fmtable_cnv.cpp",
-        "third_party/icu/source/i18n/format.cpp",
-        "third_party/icu/source/i18n/formatted_string_builder.cpp",
-        "third_party/icu/source/i18n/formattedval_iterimpl.cpp",
-        "third_party/icu/source/i18n/formattedval_sbimpl.cpp",
-        "third_party/icu/source/i18n/formattedvalue.cpp",
-        "third_party/icu/source/i18n/fphdlimp.cpp",
-        "third_party/icu/source/i18n/fpositer.cpp",
-        "third_party/icu/source/i18n/funcrepl.cpp",
-        "third_party/icu/source/i18n/gender.cpp",
-        "third_party/icu/source/i18n/gregocal.cpp",
-        "third_party/icu/source/i18n/gregoimp.cpp",
-        "third_party/icu/source/i18n/hebrwcal.cpp",
-        "third_party/icu/source/i18n/indiancal.cpp",
-        "third_party/icu/source/i18n/inputext.cpp",
-        "third_party/icu/source/i18n/islamcal.cpp",
-        "third_party/icu/source/i18n/japancal.cpp",
-        "third_party/icu/source/i18n/listformatter.cpp",
-        "third_party/icu/source/i18n/measfmt.cpp",
-        "third_party/icu/source/i18n/measunit.cpp",
-        "third_party/icu/source/i18n/measunit_extra.cpp",
-        "third_party/icu/source/i18n/measure.cpp",
-        "third_party/icu/source/i18n/msgfmt.cpp",
-        "third_party/icu/source/i18n/name2uni.cpp",
-        "third_party/icu/source/i18n/nfrs.cpp",
-        "third_party/icu/source/i18n/nfrule.cpp",
-        "third_party/icu/source/i18n/nfsubs.cpp",
-        "third_party/icu/source/i18n/nortrans.cpp",
-        "third_party/icu/source/i18n/nultrans.cpp",
-        "third_party/icu/source/i18n/number_affixutils.cpp",
-        "third_party/icu/source/i18n/number_asformat.cpp",
-        "third_party/icu/source/i18n/number_capi.cpp",
-        "third_party/icu/source/i18n/number_compact.cpp",
-        "third_party/icu/source/i18n/number_currencysymbols.cpp",
-        "third_party/icu/source/i18n/number_decimalquantity.cpp",
-        "third_party/icu/source/i18n/number_decimfmtprops.cpp",
-        "third_party/icu/source/i18n/number_fluent.cpp",
-        "third_party/icu/source/i18n/number_formatimpl.cpp",
-        "third_party/icu/source/i18n/number_grouping.cpp",
-        "third_party/icu/source/i18n/number_integerwidth.cpp",
-        "third_party/icu/source/i18n/number_longnames.cpp",
-        "third_party/icu/source/i18n/number_mapper.cpp",
-        "third_party/icu/source/i18n/number_modifiers.cpp",
-        "third_party/icu/source/i18n/number_multiplier.cpp",
-        "third_party/icu/source/i18n/number_notation.cpp",
-        "third_party/icu/source/i18n/number_output.cpp",
-        "third_party/icu/source/i18n/number_padding.cpp",
-        "third_party/icu/source/i18n/number_patternmodifier.cpp",
-        "third_party/icu/source/i18n/number_patternstring.cpp",
-        "third_party/icu/source/i18n/number_rounding.cpp",
-        "third_party/icu/source/i18n/number_scientific.cpp",
-        "third_party/icu/source/i18n/number_skeletons.cpp",
-        "third_party/icu/source/i18n/number_symbolswrapper.cpp",
-        "third_party/icu/source/i18n/number_usageprefs.cpp",
-        "third_party/icu/source/i18n/number_utils.cpp",
-        "third_party/icu/source/i18n/numfmt.cpp",
-        "third_party/icu/source/i18n/numparse_affixes.cpp",
-        "third_party/icu/source/i18n/numparse_compositions.cpp",
-        "third_party/icu/source/i18n/numparse_currency.cpp",
-        "third_party/icu/source/i18n/numparse_decimal.cpp",
-        "third_party/icu/source/i18n/numparse_impl.cpp",
-        "third_party/icu/source/i18n/numparse_parsednumber.cpp",
-        "third_party/icu/source/i18n/numparse_scientific.cpp",
-        "third_party/icu/source/i18n/numparse_symbols.cpp",
-        "third_party/icu/source/i18n/numparse_validators.cpp",
-        "third_party/icu/source/i18n/numrange_capi.cpp",
-        "third_party/icu/source/i18n/numrange_fluent.cpp",
-        "third_party/icu/source/i18n/numrange_impl.cpp",
-        "third_party/icu/source/i18n/numsys.cpp",
-        "third_party/icu/source/i18n/olsontz.cpp",
-        "third_party/icu/source/i18n/persncal.cpp",
-        "third_party/icu/source/i18n/pluralranges.cpp",
-        "third_party/icu/source/i18n/plurfmt.cpp",
-        "third_party/icu/source/i18n/plurrule.cpp",
-        "third_party/icu/source/i18n/quant.cpp",
-        "third_party/icu/source/i18n/quantityformatter.cpp",
-        "third_party/icu/source/i18n/rbnf.cpp",
-        "third_party/icu/source/i18n/rbt.cpp",
-        "third_party/icu/source/i18n/rbt_data.cpp",
-        "third_party/icu/source/i18n/rbt_pars.cpp",
-        "third_party/icu/source/i18n/rbt_rule.cpp",
-        "third_party/icu/source/i18n/rbt_set.cpp",
-        "third_party/icu/source/i18n/rbtz.cpp",
-        "third_party/icu/source/i18n/regexcmp.cpp",
-        "third_party/icu/source/i18n/regeximp.cpp",
-        "third_party/icu/source/i18n/regexst.cpp",
-        "third_party/icu/source/i18n/regextxt.cpp",
-        "third_party/icu/source/i18n/region.cpp",
-        "third_party/icu/source/i18n/reldatefmt.cpp",
-        "third_party/icu/source/i18n/reldtfmt.cpp",
-        "third_party/icu/source/i18n/rematch.cpp",
-        "third_party/icu/source/i18n/remtrans.cpp",
-        "third_party/icu/source/i18n/repattrn.cpp",
-        "third_party/icu/source/i18n/rulebasedcollator.cpp",
-        "third_party/icu/source/i18n/scientificnumberformatter.cpp",
-        "third_party/icu/source/i18n/scriptset.cpp",
-        "third_party/icu/source/i18n/search.cpp",
-        "third_party/icu/source/i18n/selfmt.cpp",
-        "third_party/icu/source/i18n/sharedbreakiterator.cpp",
-        "third_party/icu/source/i18n/simpletz.cpp",
-        "third_party/icu/source/i18n/smpdtfmt.cpp",
-        "third_party/icu/source/i18n/smpdtfst.cpp",
-        "third_party/icu/source/i18n/sortkey.cpp",
-        "third_party/icu/source/i18n/standardplural.cpp",
-        "third_party/icu/source/i18n/string_segment.cpp",
-        "third_party/icu/source/i18n/strmatch.cpp",
-        "third_party/icu/source/i18n/strrepl.cpp",
-        "third_party/icu/source/i18n/stsearch.cpp",
-        "third_party/icu/source/i18n/taiwncal.cpp",
-        "third_party/icu/source/i18n/timezone.cpp",
-        "third_party/icu/source/i18n/titletrn.cpp",
-        "third_party/icu/source/i18n/tmunit.cpp",
-        "third_party/icu/source/i18n/tmutamt.cpp",
-        "third_party/icu/source/i18n/tmutfmt.cpp",
-        "third_party/icu/source/i18n/tolowtrn.cpp",
-        "third_party/icu/source/i18n/toupptrn.cpp",
-        "third_party/icu/source/i18n/translit.cpp",
-        "third_party/icu/source/i18n/transreg.cpp",
-        "third_party/icu/source/i18n/tridpars.cpp",
-        "third_party/icu/source/i18n/tzfmt.cpp",
-        "third_party/icu/source/i18n/tzgnames.cpp",
-        "third_party/icu/source/i18n/tznames.cpp",
-        "third_party/icu/source/i18n/tznames_impl.cpp",
-        "third_party/icu/source/i18n/tzrule.cpp",
-        "third_party/icu/source/i18n/tztrans.cpp",
-        "third_party/icu/source/i18n/ucal.cpp",
-        "third_party/icu/source/i18n/ucln_in.cpp",
-        "third_party/icu/source/i18n/ucol.cpp",
-        "third_party/icu/source/i18n/ucol_res.cpp",
-        "third_party/icu/source/i18n/ucol_sit.cpp",
-        "third_party/icu/source/i18n/ucoleitr.cpp",
-        "third_party/icu/source/i18n/ucsdet.cpp",
-        "third_party/icu/source/i18n/udat.cpp",
-        "third_party/icu/source/i18n/udateintervalformat.cpp",
-        "third_party/icu/source/i18n/udatpg.cpp",
-        "third_party/icu/source/i18n/ufieldpositer.cpp",
-        "third_party/icu/source/i18n/uitercollationiterator.cpp",
-        "third_party/icu/source/i18n/ulistformatter.cpp",
-        "third_party/icu/source/i18n/ulocdata.cpp",
-        "third_party/icu/source/i18n/umsg.cpp",
-        "third_party/icu/source/i18n/unesctrn.cpp",
-        "third_party/icu/source/i18n/uni2name.cpp",
-        "third_party/icu/source/i18n/units_complexconverter.cpp",
-        "third_party/icu/source/i18n/units_converter.cpp",
-        "third_party/icu/source/i18n/units_data.cpp",
-        "third_party/icu/source/i18n/units_router.cpp",
-        "third_party/icu/source/i18n/unum.cpp",
-        "third_party/icu/source/i18n/unumsys.cpp",
-        "third_party/icu/source/i18n/upluralrules.cpp",
-        "third_party/icu/source/i18n/uregex.cpp",
-        "third_party/icu/source/i18n/uregexc.cpp",
-        "third_party/icu/source/i18n/uregion.cpp",
-        "third_party/icu/source/i18n/usearch.cpp",
-        "third_party/icu/source/i18n/uspoof.cpp",
-        "third_party/icu/source/i18n/uspoof_build.cpp",
-        "third_party/icu/source/i18n/uspoof_conf.cpp",
-        "third_party/icu/source/i18n/uspoof_impl.cpp",
-        "third_party/icu/source/i18n/utf16collationiterator.cpp",
-        "third_party/icu/source/i18n/utf8collationiterator.cpp",
-        "third_party/icu/source/i18n/utmscale.cpp",
-        "third_party/icu/source/i18n/utrans.cpp",
-        "third_party/icu/source/i18n/vtzone.cpp",
-        "third_party/icu/source/i18n/vzone.cpp",
-        "third_party/icu/source/i18n/windtfmt.cpp",
-        "third_party/icu/source/i18n/winnmfmt.cpp",
-        "third_party/icu/source/i18n/wintzimpl.cpp",
-        "third_party/icu/source/i18n/zonemeta.cpp",
-        "third_party/icu/source/i18n/zrule.cpp",
-        "third_party/icu/source/i18n/ztrans.cpp",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_icu_icuuc_private",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_DLOPEN=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUCONFIG_ONLY_HTML_CONVERSION=1",
-        "-DUCONFIG_USE_WINDOWS_LCID_MAPPING_API=0",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_CHARSET_IS_UTF8=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_I18N_IMPLEMENTATION",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/icu:icui18n__testing
-cc_library_static {
-    name: "cronet_aml_third_party_icu_icui18n__testing",
-    srcs: [
-        "third_party/icu/source/i18n/alphaindex.cpp",
-        "third_party/icu/source/i18n/anytrans.cpp",
-        "third_party/icu/source/i18n/astro.cpp",
-        "third_party/icu/source/i18n/basictz.cpp",
-        "third_party/icu/source/i18n/bocsu.cpp",
-        "third_party/icu/source/i18n/brktrans.cpp",
-        "third_party/icu/source/i18n/buddhcal.cpp",
-        "third_party/icu/source/i18n/calendar.cpp",
-        "third_party/icu/source/i18n/casetrn.cpp",
-        "third_party/icu/source/i18n/cecal.cpp",
-        "third_party/icu/source/i18n/chnsecal.cpp",
-        "third_party/icu/source/i18n/choicfmt.cpp",
-        "third_party/icu/source/i18n/coleitr.cpp",
-        "third_party/icu/source/i18n/coll.cpp",
-        "third_party/icu/source/i18n/collation.cpp",
-        "third_party/icu/source/i18n/collationbuilder.cpp",
-        "third_party/icu/source/i18n/collationcompare.cpp",
-        "third_party/icu/source/i18n/collationdata.cpp",
-        "third_party/icu/source/i18n/collationdatabuilder.cpp",
-        "third_party/icu/source/i18n/collationdatareader.cpp",
-        "third_party/icu/source/i18n/collationdatawriter.cpp",
-        "third_party/icu/source/i18n/collationfastlatin.cpp",
-        "third_party/icu/source/i18n/collationfastlatinbuilder.cpp",
-        "third_party/icu/source/i18n/collationfcd.cpp",
-        "third_party/icu/source/i18n/collationiterator.cpp",
-        "third_party/icu/source/i18n/collationkeys.cpp",
-        "third_party/icu/source/i18n/collationroot.cpp",
-        "third_party/icu/source/i18n/collationrootelements.cpp",
-        "third_party/icu/source/i18n/collationruleparser.cpp",
-        "third_party/icu/source/i18n/collationsets.cpp",
-        "third_party/icu/source/i18n/collationsettings.cpp",
-        "third_party/icu/source/i18n/collationtailoring.cpp",
-        "third_party/icu/source/i18n/collationweights.cpp",
-        "third_party/icu/source/i18n/compactdecimalformat.cpp",
-        "third_party/icu/source/i18n/coptccal.cpp",
-        "third_party/icu/source/i18n/cpdtrans.cpp",
-        "third_party/icu/source/i18n/csdetect.cpp",
-        "third_party/icu/source/i18n/csmatch.cpp",
-        "third_party/icu/source/i18n/csr2022.cpp",
-        "third_party/icu/source/i18n/csrecog.cpp",
-        "third_party/icu/source/i18n/csrmbcs.cpp",
-        "third_party/icu/source/i18n/csrsbcs.cpp",
-        "third_party/icu/source/i18n/csrucode.cpp",
-        "third_party/icu/source/i18n/csrutf8.cpp",
-        "third_party/icu/source/i18n/curramt.cpp",
-        "third_party/icu/source/i18n/currfmt.cpp",
-        "third_party/icu/source/i18n/currpinf.cpp",
-        "third_party/icu/source/i18n/currunit.cpp",
-        "third_party/icu/source/i18n/dangical.cpp",
-        "third_party/icu/source/i18n/datefmt.cpp",
-        "third_party/icu/source/i18n/dayperiodrules.cpp",
-        "third_party/icu/source/i18n/dcfmtsym.cpp",
-        "third_party/icu/source/i18n/decContext.cpp",
-        "third_party/icu/source/i18n/decNumber.cpp",
-        "third_party/icu/source/i18n/decimfmt.cpp",
-        "third_party/icu/source/i18n/double-conversion-bignum-dtoa.cpp",
-        "third_party/icu/source/i18n/double-conversion-bignum.cpp",
-        "third_party/icu/source/i18n/double-conversion-cached-powers.cpp",
-        "third_party/icu/source/i18n/double-conversion-double-to-string.cpp",
-        "third_party/icu/source/i18n/double-conversion-fast-dtoa.cpp",
-        "third_party/icu/source/i18n/double-conversion-string-to-double.cpp",
-        "third_party/icu/source/i18n/double-conversion-strtod.cpp",
-        "third_party/icu/source/i18n/dtfmtsym.cpp",
-        "third_party/icu/source/i18n/dtitvfmt.cpp",
-        "third_party/icu/source/i18n/dtitvinf.cpp",
-        "third_party/icu/source/i18n/dtptngen.cpp",
-        "third_party/icu/source/i18n/dtrule.cpp",
-        "third_party/icu/source/i18n/erarules.cpp",
-        "third_party/icu/source/i18n/esctrn.cpp",
-        "third_party/icu/source/i18n/ethpccal.cpp",
-        "third_party/icu/source/i18n/fmtable.cpp",
-        "third_party/icu/source/i18n/fmtable_cnv.cpp",
-        "third_party/icu/source/i18n/format.cpp",
-        "third_party/icu/source/i18n/formatted_string_builder.cpp",
-        "third_party/icu/source/i18n/formattedval_iterimpl.cpp",
-        "third_party/icu/source/i18n/formattedval_sbimpl.cpp",
-        "third_party/icu/source/i18n/formattedvalue.cpp",
-        "third_party/icu/source/i18n/fphdlimp.cpp",
-        "third_party/icu/source/i18n/fpositer.cpp",
-        "third_party/icu/source/i18n/funcrepl.cpp",
-        "third_party/icu/source/i18n/gender.cpp",
-        "third_party/icu/source/i18n/gregocal.cpp",
-        "third_party/icu/source/i18n/gregoimp.cpp",
-        "third_party/icu/source/i18n/hebrwcal.cpp",
-        "third_party/icu/source/i18n/indiancal.cpp",
-        "third_party/icu/source/i18n/inputext.cpp",
-        "third_party/icu/source/i18n/islamcal.cpp",
-        "third_party/icu/source/i18n/japancal.cpp",
-        "third_party/icu/source/i18n/listformatter.cpp",
-        "third_party/icu/source/i18n/measfmt.cpp",
-        "third_party/icu/source/i18n/measunit.cpp",
-        "third_party/icu/source/i18n/measunit_extra.cpp",
-        "third_party/icu/source/i18n/measure.cpp",
-        "third_party/icu/source/i18n/msgfmt.cpp",
-        "third_party/icu/source/i18n/name2uni.cpp",
-        "third_party/icu/source/i18n/nfrs.cpp",
-        "third_party/icu/source/i18n/nfrule.cpp",
-        "third_party/icu/source/i18n/nfsubs.cpp",
-        "third_party/icu/source/i18n/nortrans.cpp",
-        "third_party/icu/source/i18n/nultrans.cpp",
-        "third_party/icu/source/i18n/number_affixutils.cpp",
-        "third_party/icu/source/i18n/number_asformat.cpp",
-        "third_party/icu/source/i18n/number_capi.cpp",
-        "third_party/icu/source/i18n/number_compact.cpp",
-        "third_party/icu/source/i18n/number_currencysymbols.cpp",
-        "third_party/icu/source/i18n/number_decimalquantity.cpp",
-        "third_party/icu/source/i18n/number_decimfmtprops.cpp",
-        "third_party/icu/source/i18n/number_fluent.cpp",
-        "third_party/icu/source/i18n/number_formatimpl.cpp",
-        "third_party/icu/source/i18n/number_grouping.cpp",
-        "third_party/icu/source/i18n/number_integerwidth.cpp",
-        "third_party/icu/source/i18n/number_longnames.cpp",
-        "third_party/icu/source/i18n/number_mapper.cpp",
-        "third_party/icu/source/i18n/number_modifiers.cpp",
-        "third_party/icu/source/i18n/number_multiplier.cpp",
-        "third_party/icu/source/i18n/number_notation.cpp",
-        "third_party/icu/source/i18n/number_output.cpp",
-        "third_party/icu/source/i18n/number_padding.cpp",
-        "third_party/icu/source/i18n/number_patternmodifier.cpp",
-        "third_party/icu/source/i18n/number_patternstring.cpp",
-        "third_party/icu/source/i18n/number_rounding.cpp",
-        "third_party/icu/source/i18n/number_scientific.cpp",
-        "third_party/icu/source/i18n/number_skeletons.cpp",
-        "third_party/icu/source/i18n/number_symbolswrapper.cpp",
-        "third_party/icu/source/i18n/number_usageprefs.cpp",
-        "third_party/icu/source/i18n/number_utils.cpp",
-        "third_party/icu/source/i18n/numfmt.cpp",
-        "third_party/icu/source/i18n/numparse_affixes.cpp",
-        "third_party/icu/source/i18n/numparse_compositions.cpp",
-        "third_party/icu/source/i18n/numparse_currency.cpp",
-        "third_party/icu/source/i18n/numparse_decimal.cpp",
-        "third_party/icu/source/i18n/numparse_impl.cpp",
-        "third_party/icu/source/i18n/numparse_parsednumber.cpp",
-        "third_party/icu/source/i18n/numparse_scientific.cpp",
-        "third_party/icu/source/i18n/numparse_symbols.cpp",
-        "third_party/icu/source/i18n/numparse_validators.cpp",
-        "third_party/icu/source/i18n/numrange_capi.cpp",
-        "third_party/icu/source/i18n/numrange_fluent.cpp",
-        "third_party/icu/source/i18n/numrange_impl.cpp",
-        "third_party/icu/source/i18n/numsys.cpp",
-        "third_party/icu/source/i18n/olsontz.cpp",
-        "third_party/icu/source/i18n/persncal.cpp",
-        "third_party/icu/source/i18n/pluralranges.cpp",
-        "third_party/icu/source/i18n/plurfmt.cpp",
-        "third_party/icu/source/i18n/plurrule.cpp",
-        "third_party/icu/source/i18n/quant.cpp",
-        "third_party/icu/source/i18n/quantityformatter.cpp",
-        "third_party/icu/source/i18n/rbnf.cpp",
-        "third_party/icu/source/i18n/rbt.cpp",
-        "third_party/icu/source/i18n/rbt_data.cpp",
-        "third_party/icu/source/i18n/rbt_pars.cpp",
-        "third_party/icu/source/i18n/rbt_rule.cpp",
-        "third_party/icu/source/i18n/rbt_set.cpp",
-        "third_party/icu/source/i18n/rbtz.cpp",
-        "third_party/icu/source/i18n/regexcmp.cpp",
-        "third_party/icu/source/i18n/regeximp.cpp",
-        "third_party/icu/source/i18n/regexst.cpp",
-        "third_party/icu/source/i18n/regextxt.cpp",
-        "third_party/icu/source/i18n/region.cpp",
-        "third_party/icu/source/i18n/reldatefmt.cpp",
-        "third_party/icu/source/i18n/reldtfmt.cpp",
-        "third_party/icu/source/i18n/rematch.cpp",
-        "third_party/icu/source/i18n/remtrans.cpp",
-        "third_party/icu/source/i18n/repattrn.cpp",
-        "third_party/icu/source/i18n/rulebasedcollator.cpp",
-        "third_party/icu/source/i18n/scientificnumberformatter.cpp",
-        "third_party/icu/source/i18n/scriptset.cpp",
-        "third_party/icu/source/i18n/search.cpp",
-        "third_party/icu/source/i18n/selfmt.cpp",
-        "third_party/icu/source/i18n/sharedbreakiterator.cpp",
-        "third_party/icu/source/i18n/simpletz.cpp",
-        "third_party/icu/source/i18n/smpdtfmt.cpp",
-        "third_party/icu/source/i18n/smpdtfst.cpp",
-        "third_party/icu/source/i18n/sortkey.cpp",
-        "third_party/icu/source/i18n/standardplural.cpp",
-        "third_party/icu/source/i18n/string_segment.cpp",
-        "third_party/icu/source/i18n/strmatch.cpp",
-        "third_party/icu/source/i18n/strrepl.cpp",
-        "third_party/icu/source/i18n/stsearch.cpp",
-        "third_party/icu/source/i18n/taiwncal.cpp",
-        "third_party/icu/source/i18n/timezone.cpp",
-        "third_party/icu/source/i18n/titletrn.cpp",
-        "third_party/icu/source/i18n/tmunit.cpp",
-        "third_party/icu/source/i18n/tmutamt.cpp",
-        "third_party/icu/source/i18n/tmutfmt.cpp",
-        "third_party/icu/source/i18n/tolowtrn.cpp",
-        "third_party/icu/source/i18n/toupptrn.cpp",
-        "third_party/icu/source/i18n/translit.cpp",
-        "third_party/icu/source/i18n/transreg.cpp",
-        "third_party/icu/source/i18n/tridpars.cpp",
-        "third_party/icu/source/i18n/tzfmt.cpp",
-        "third_party/icu/source/i18n/tzgnames.cpp",
-        "third_party/icu/source/i18n/tznames.cpp",
-        "third_party/icu/source/i18n/tznames_impl.cpp",
-        "third_party/icu/source/i18n/tzrule.cpp",
-        "third_party/icu/source/i18n/tztrans.cpp",
-        "third_party/icu/source/i18n/ucal.cpp",
-        "third_party/icu/source/i18n/ucln_in.cpp",
-        "third_party/icu/source/i18n/ucol.cpp",
-        "third_party/icu/source/i18n/ucol_res.cpp",
-        "third_party/icu/source/i18n/ucol_sit.cpp",
-        "third_party/icu/source/i18n/ucoleitr.cpp",
-        "third_party/icu/source/i18n/ucsdet.cpp",
-        "third_party/icu/source/i18n/udat.cpp",
-        "third_party/icu/source/i18n/udateintervalformat.cpp",
-        "third_party/icu/source/i18n/udatpg.cpp",
-        "third_party/icu/source/i18n/ufieldpositer.cpp",
-        "third_party/icu/source/i18n/uitercollationiterator.cpp",
-        "third_party/icu/source/i18n/ulistformatter.cpp",
-        "third_party/icu/source/i18n/ulocdata.cpp",
-        "third_party/icu/source/i18n/umsg.cpp",
-        "third_party/icu/source/i18n/unesctrn.cpp",
-        "third_party/icu/source/i18n/uni2name.cpp",
-        "third_party/icu/source/i18n/units_complexconverter.cpp",
-        "third_party/icu/source/i18n/units_converter.cpp",
-        "third_party/icu/source/i18n/units_data.cpp",
-        "third_party/icu/source/i18n/units_router.cpp",
-        "third_party/icu/source/i18n/unum.cpp",
-        "third_party/icu/source/i18n/unumsys.cpp",
-        "third_party/icu/source/i18n/upluralrules.cpp",
-        "third_party/icu/source/i18n/uregex.cpp",
-        "third_party/icu/source/i18n/uregexc.cpp",
-        "third_party/icu/source/i18n/uregion.cpp",
-        "third_party/icu/source/i18n/usearch.cpp",
-        "third_party/icu/source/i18n/uspoof.cpp",
-        "third_party/icu/source/i18n/uspoof_build.cpp",
-        "third_party/icu/source/i18n/uspoof_conf.cpp",
-        "third_party/icu/source/i18n/uspoof_impl.cpp",
-        "third_party/icu/source/i18n/utf16collationiterator.cpp",
-        "third_party/icu/source/i18n/utf8collationiterator.cpp",
-        "third_party/icu/source/i18n/utmscale.cpp",
-        "third_party/icu/source/i18n/utrans.cpp",
-        "third_party/icu/source/i18n/vtzone.cpp",
-        "third_party/icu/source/i18n/vzone.cpp",
-        "third_party/icu/source/i18n/windtfmt.cpp",
-        "third_party/icu/source/i18n/winnmfmt.cpp",
-        "third_party/icu/source/i18n/wintzimpl.cpp",
-        "third_party/icu/source/i18n/zonemeta.cpp",
-        "third_party/icu/source/i18n/zrule.cpp",
-        "third_party/icu/source/i18n/ztrans.cpp",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_DLOPEN=0",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUCONFIG_ONLY_HTML_CONVERSION=1",
-        "-DUCONFIG_USE_WINDOWS_LCID_MAPPING_API=0",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_CHARSET_IS_UTF8=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_I18N_IMPLEMENTATION",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/icu:icuuc_private
-cc_library_static {
-    name: "cronet_aml_third_party_icu_icuuc_private",
-    srcs: [
-        "third_party/icu/source/common/appendable.cpp",
-        "third_party/icu/source/common/bmpset.cpp",
-        "third_party/icu/source/common/brkeng.cpp",
-        "third_party/icu/source/common/brkiter.cpp",
-        "third_party/icu/source/common/bytesinkutil.cpp",
-        "third_party/icu/source/common/bytestream.cpp",
-        "third_party/icu/source/common/bytestrie.cpp",
-        "third_party/icu/source/common/bytestriebuilder.cpp",
-        "third_party/icu/source/common/bytestrieiterator.cpp",
-        "third_party/icu/source/common/caniter.cpp",
-        "third_party/icu/source/common/characterproperties.cpp",
-        "third_party/icu/source/common/chariter.cpp",
-        "third_party/icu/source/common/charstr.cpp",
-        "third_party/icu/source/common/cmemory.cpp",
-        "third_party/icu/source/common/cstr.cpp",
-        "third_party/icu/source/common/cstring.cpp",
-        "third_party/icu/source/common/cwchar.cpp",
-        "third_party/icu/source/common/dictbe.cpp",
-        "third_party/icu/source/common/dictionarydata.cpp",
-        "third_party/icu/source/common/dtintrv.cpp",
-        "third_party/icu/source/common/edits.cpp",
-        "third_party/icu/source/common/emojiprops.cpp",
-        "third_party/icu/source/common/errorcode.cpp",
-        "third_party/icu/source/common/filteredbrk.cpp",
-        "third_party/icu/source/common/filterednormalizer2.cpp",
-        "third_party/icu/source/common/icudataver.cpp",
-        "third_party/icu/source/common/icuplug.cpp",
-        "third_party/icu/source/common/loadednormalizer2impl.cpp",
-        "third_party/icu/source/common/localebuilder.cpp",
-        "third_party/icu/source/common/localematcher.cpp",
-        "third_party/icu/source/common/localeprioritylist.cpp",
-        "third_party/icu/source/common/locavailable.cpp",
-        "third_party/icu/source/common/locbased.cpp",
-        "third_party/icu/source/common/locdispnames.cpp",
-        "third_party/icu/source/common/locdistance.cpp",
-        "third_party/icu/source/common/locdspnm.cpp",
-        "third_party/icu/source/common/locid.cpp",
-        "third_party/icu/source/common/loclikely.cpp",
-        "third_party/icu/source/common/loclikelysubtags.cpp",
-        "third_party/icu/source/common/locmap.cpp",
-        "third_party/icu/source/common/locresdata.cpp",
-        "third_party/icu/source/common/locutil.cpp",
-        "third_party/icu/source/common/lsr.cpp",
-        "third_party/icu/source/common/lstmbe.cpp",
-        "third_party/icu/source/common/messagepattern.cpp",
-        "third_party/icu/source/common/normalizer2.cpp",
-        "third_party/icu/source/common/normalizer2impl.cpp",
-        "third_party/icu/source/common/normlzr.cpp",
-        "third_party/icu/source/common/parsepos.cpp",
-        "third_party/icu/source/common/patternprops.cpp",
-        "third_party/icu/source/common/pluralmap.cpp",
-        "third_party/icu/source/common/propname.cpp",
-        "third_party/icu/source/common/propsvec.cpp",
-        "third_party/icu/source/common/punycode.cpp",
-        "third_party/icu/source/common/putil.cpp",
-        "third_party/icu/source/common/rbbi.cpp",
-        "third_party/icu/source/common/rbbi_cache.cpp",
-        "third_party/icu/source/common/rbbidata.cpp",
-        "third_party/icu/source/common/rbbinode.cpp",
-        "third_party/icu/source/common/rbbirb.cpp",
-        "third_party/icu/source/common/rbbiscan.cpp",
-        "third_party/icu/source/common/rbbisetb.cpp",
-        "third_party/icu/source/common/rbbistbl.cpp",
-        "third_party/icu/source/common/rbbitblb.cpp",
-        "third_party/icu/source/common/resbund.cpp",
-        "third_party/icu/source/common/resbund_cnv.cpp",
-        "third_party/icu/source/common/resource.cpp",
-        "third_party/icu/source/common/restrace.cpp",
-        "third_party/icu/source/common/ruleiter.cpp",
-        "third_party/icu/source/common/schriter.cpp",
-        "third_party/icu/source/common/serv.cpp",
-        "third_party/icu/source/common/servlk.cpp",
-        "third_party/icu/source/common/servlkf.cpp",
-        "third_party/icu/source/common/servls.cpp",
-        "third_party/icu/source/common/servnotf.cpp",
-        "third_party/icu/source/common/servrbf.cpp",
-        "third_party/icu/source/common/servslkf.cpp",
-        "third_party/icu/source/common/sharedobject.cpp",
-        "third_party/icu/source/common/simpleformatter.cpp",
-        "third_party/icu/source/common/static_unicode_sets.cpp",
-        "third_party/icu/source/common/stringpiece.cpp",
-        "third_party/icu/source/common/stringtriebuilder.cpp",
-        "third_party/icu/source/common/uarrsort.cpp",
-        "third_party/icu/source/common/ubidi.cpp",
-        "third_party/icu/source/common/ubidi_props.cpp",
-        "third_party/icu/source/common/ubidiln.cpp",
-        "third_party/icu/source/common/ubiditransform.cpp",
-        "third_party/icu/source/common/ubidiwrt.cpp",
-        "third_party/icu/source/common/ubrk.cpp",
-        "third_party/icu/source/common/ucase.cpp",
-        "third_party/icu/source/common/ucasemap.cpp",
-        "third_party/icu/source/common/ucasemap_titlecase_brkiter.cpp",
-        "third_party/icu/source/common/ucat.cpp",
-        "third_party/icu/source/common/uchar.cpp",
-        "third_party/icu/source/common/ucharstrie.cpp",
-        "third_party/icu/source/common/ucharstriebuilder.cpp",
-        "third_party/icu/source/common/ucharstrieiterator.cpp",
-        "third_party/icu/source/common/uchriter.cpp",
-        "third_party/icu/source/common/ucln_cmn.cpp",
-        "third_party/icu/source/common/ucmndata.cpp",
-        "third_party/icu/source/common/ucnv.cpp",
-        "third_party/icu/source/common/ucnv2022.cpp",
-        "third_party/icu/source/common/ucnv_bld.cpp",
-        "third_party/icu/source/common/ucnv_cb.cpp",
-        "third_party/icu/source/common/ucnv_cnv.cpp",
-        "third_party/icu/source/common/ucnv_ct.cpp",
-        "third_party/icu/source/common/ucnv_err.cpp",
-        "third_party/icu/source/common/ucnv_ext.cpp",
-        "third_party/icu/source/common/ucnv_io.cpp",
-        "third_party/icu/source/common/ucnv_lmb.cpp",
-        "third_party/icu/source/common/ucnv_set.cpp",
-        "third_party/icu/source/common/ucnv_u16.cpp",
-        "third_party/icu/source/common/ucnv_u32.cpp",
-        "third_party/icu/source/common/ucnv_u7.cpp",
-        "third_party/icu/source/common/ucnv_u8.cpp",
-        "third_party/icu/source/common/ucnvbocu.cpp",
-        "third_party/icu/source/common/ucnvdisp.cpp",
-        "third_party/icu/source/common/ucnvhz.cpp",
-        "third_party/icu/source/common/ucnvisci.cpp",
-        "third_party/icu/source/common/ucnvlat1.cpp",
-        "third_party/icu/source/common/ucnvmbcs.cpp",
-        "third_party/icu/source/common/ucnvscsu.cpp",
-        "third_party/icu/source/common/ucnvsel.cpp",
-        "third_party/icu/source/common/ucol_swp.cpp",
-        "third_party/icu/source/common/ucptrie.cpp",
-        "third_party/icu/source/common/ucurr.cpp",
-        "third_party/icu/source/common/udata.cpp",
-        "third_party/icu/source/common/udatamem.cpp",
-        "third_party/icu/source/common/udataswp.cpp",
-        "third_party/icu/source/common/uenum.cpp",
-        "third_party/icu/source/common/uhash.cpp",
-        "third_party/icu/source/common/uhash_us.cpp",
-        "third_party/icu/source/common/uidna.cpp",
-        "third_party/icu/source/common/uinit.cpp",
-        "third_party/icu/source/common/uinvchar.cpp",
-        "third_party/icu/source/common/uiter.cpp",
-        "third_party/icu/source/common/ulist.cpp",
-        "third_party/icu/source/common/uloc.cpp",
-        "third_party/icu/source/common/uloc_keytype.cpp",
-        "third_party/icu/source/common/uloc_tag.cpp",
-        "third_party/icu/source/common/umapfile.cpp",
-        "third_party/icu/source/common/umath.cpp",
-        "third_party/icu/source/common/umutablecptrie.cpp",
-        "third_party/icu/source/common/umutex.cpp",
-        "third_party/icu/source/common/unames.cpp",
-        "third_party/icu/source/common/unifiedcache.cpp",
-        "third_party/icu/source/common/unifilt.cpp",
-        "third_party/icu/source/common/unifunct.cpp",
-        "third_party/icu/source/common/uniset.cpp",
-        "third_party/icu/source/common/uniset_closure.cpp",
-        "third_party/icu/source/common/uniset_props.cpp",
-        "third_party/icu/source/common/unisetspan.cpp",
-        "third_party/icu/source/common/unistr.cpp",
-        "third_party/icu/source/common/unistr_case.cpp",
-        "third_party/icu/source/common/unistr_case_locale.cpp",
-        "third_party/icu/source/common/unistr_cnv.cpp",
-        "third_party/icu/source/common/unistr_props.cpp",
-        "third_party/icu/source/common/unistr_titlecase_brkiter.cpp",
-        "third_party/icu/source/common/unorm.cpp",
-        "third_party/icu/source/common/unormcmp.cpp",
-        "third_party/icu/source/common/uobject.cpp",
-        "third_party/icu/source/common/uprops.cpp",
-        "third_party/icu/source/common/ures_cnv.cpp",
-        "third_party/icu/source/common/uresbund.cpp",
-        "third_party/icu/source/common/uresdata.cpp",
-        "third_party/icu/source/common/usc_impl.cpp",
-        "third_party/icu/source/common/uscript.cpp",
-        "third_party/icu/source/common/uscript_props.cpp",
-        "third_party/icu/source/common/uset.cpp",
-        "third_party/icu/source/common/uset_props.cpp",
-        "third_party/icu/source/common/usetiter.cpp",
-        "third_party/icu/source/common/ushape.cpp",
-        "third_party/icu/source/common/usprep.cpp",
-        "third_party/icu/source/common/ustack.cpp",
-        "third_party/icu/source/common/ustr_cnv.cpp",
-        "third_party/icu/source/common/ustr_titlecase_brkiter.cpp",
-        "third_party/icu/source/common/ustr_wcs.cpp",
-        "third_party/icu/source/common/ustrcase.cpp",
-        "third_party/icu/source/common/ustrcase_locale.cpp",
-        "third_party/icu/source/common/ustrenum.cpp",
-        "third_party/icu/source/common/ustrfmt.cpp",
-        "third_party/icu/source/common/ustring.cpp",
-        "third_party/icu/source/common/ustrtrns.cpp",
-        "third_party/icu/source/common/utext.cpp",
-        "third_party/icu/source/common/utf_impl.cpp",
-        "third_party/icu/source/common/util.cpp",
-        "third_party/icu/source/common/util_props.cpp",
-        "third_party/icu/source/common/utrace.cpp",
-        "third_party/icu/source/common/utrie.cpp",
-        "third_party/icu/source/common/utrie2.cpp",
-        "third_party/icu/source/common/utrie2_builder.cpp",
-        "third_party/icu/source/common/utrie_swap.cpp",
-        "third_party/icu/source/common/uts46.cpp",
-        "third_party/icu/source/common/utypes.cpp",
-        "third_party/icu/source/common/uvector.cpp",
-        "third_party/icu/source/common/uvectr32.cpp",
-        "third_party/icu/source/common/uvectr64.cpp",
-        "third_party/icu/source/common/wintz.cpp",
-        "third_party/icu/source/stubdata/stubdata.cpp",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_DLOPEN=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUCONFIG_ONLY_HTML_CONVERSION=1",
-        "-DUCONFIG_USE_WINDOWS_LCID_MAPPING_API=0",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_CHARSET_IS_UTF8=1",
-        "-DU_COMMON_IMPLEMENTATION",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_ICUDATAENTRY_IN_COMMON",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/icu:icuuc_private__testing
-cc_library_static {
-    name: "cronet_aml_third_party_icu_icuuc_private__testing",
-    srcs: [
-        "third_party/icu/source/common/appendable.cpp",
-        "third_party/icu/source/common/bmpset.cpp",
-        "third_party/icu/source/common/brkeng.cpp",
-        "third_party/icu/source/common/brkiter.cpp",
-        "third_party/icu/source/common/bytesinkutil.cpp",
-        "third_party/icu/source/common/bytestream.cpp",
-        "third_party/icu/source/common/bytestrie.cpp",
-        "third_party/icu/source/common/bytestriebuilder.cpp",
-        "third_party/icu/source/common/bytestrieiterator.cpp",
-        "third_party/icu/source/common/caniter.cpp",
-        "third_party/icu/source/common/characterproperties.cpp",
-        "third_party/icu/source/common/chariter.cpp",
-        "third_party/icu/source/common/charstr.cpp",
-        "third_party/icu/source/common/cmemory.cpp",
-        "third_party/icu/source/common/cstr.cpp",
-        "third_party/icu/source/common/cstring.cpp",
-        "third_party/icu/source/common/cwchar.cpp",
-        "third_party/icu/source/common/dictbe.cpp",
-        "third_party/icu/source/common/dictionarydata.cpp",
-        "third_party/icu/source/common/dtintrv.cpp",
-        "third_party/icu/source/common/edits.cpp",
-        "third_party/icu/source/common/emojiprops.cpp",
-        "third_party/icu/source/common/errorcode.cpp",
-        "third_party/icu/source/common/filteredbrk.cpp",
-        "third_party/icu/source/common/filterednormalizer2.cpp",
-        "third_party/icu/source/common/icudataver.cpp",
-        "third_party/icu/source/common/icuplug.cpp",
-        "third_party/icu/source/common/loadednormalizer2impl.cpp",
-        "third_party/icu/source/common/localebuilder.cpp",
-        "third_party/icu/source/common/localematcher.cpp",
-        "third_party/icu/source/common/localeprioritylist.cpp",
-        "third_party/icu/source/common/locavailable.cpp",
-        "third_party/icu/source/common/locbased.cpp",
-        "third_party/icu/source/common/locdispnames.cpp",
-        "third_party/icu/source/common/locdistance.cpp",
-        "third_party/icu/source/common/locdspnm.cpp",
-        "third_party/icu/source/common/locid.cpp",
-        "third_party/icu/source/common/loclikely.cpp",
-        "third_party/icu/source/common/loclikelysubtags.cpp",
-        "third_party/icu/source/common/locmap.cpp",
-        "third_party/icu/source/common/locresdata.cpp",
-        "third_party/icu/source/common/locutil.cpp",
-        "third_party/icu/source/common/lsr.cpp",
-        "third_party/icu/source/common/lstmbe.cpp",
-        "third_party/icu/source/common/messagepattern.cpp",
-        "third_party/icu/source/common/normalizer2.cpp",
-        "third_party/icu/source/common/normalizer2impl.cpp",
-        "third_party/icu/source/common/normlzr.cpp",
-        "third_party/icu/source/common/parsepos.cpp",
-        "third_party/icu/source/common/patternprops.cpp",
-        "third_party/icu/source/common/pluralmap.cpp",
-        "third_party/icu/source/common/propname.cpp",
-        "third_party/icu/source/common/propsvec.cpp",
-        "third_party/icu/source/common/punycode.cpp",
-        "third_party/icu/source/common/putil.cpp",
-        "third_party/icu/source/common/rbbi.cpp",
-        "third_party/icu/source/common/rbbi_cache.cpp",
-        "third_party/icu/source/common/rbbidata.cpp",
-        "third_party/icu/source/common/rbbinode.cpp",
-        "third_party/icu/source/common/rbbirb.cpp",
-        "third_party/icu/source/common/rbbiscan.cpp",
-        "third_party/icu/source/common/rbbisetb.cpp",
-        "third_party/icu/source/common/rbbistbl.cpp",
-        "third_party/icu/source/common/rbbitblb.cpp",
-        "third_party/icu/source/common/resbund.cpp",
-        "third_party/icu/source/common/resbund_cnv.cpp",
-        "third_party/icu/source/common/resource.cpp",
-        "third_party/icu/source/common/restrace.cpp",
-        "third_party/icu/source/common/ruleiter.cpp",
-        "third_party/icu/source/common/schriter.cpp",
-        "third_party/icu/source/common/serv.cpp",
-        "third_party/icu/source/common/servlk.cpp",
-        "third_party/icu/source/common/servlkf.cpp",
-        "third_party/icu/source/common/servls.cpp",
-        "third_party/icu/source/common/servnotf.cpp",
-        "third_party/icu/source/common/servrbf.cpp",
-        "third_party/icu/source/common/servslkf.cpp",
-        "third_party/icu/source/common/sharedobject.cpp",
-        "third_party/icu/source/common/simpleformatter.cpp",
-        "third_party/icu/source/common/static_unicode_sets.cpp",
-        "third_party/icu/source/common/stringpiece.cpp",
-        "third_party/icu/source/common/stringtriebuilder.cpp",
-        "third_party/icu/source/common/uarrsort.cpp",
-        "third_party/icu/source/common/ubidi.cpp",
-        "third_party/icu/source/common/ubidi_props.cpp",
-        "third_party/icu/source/common/ubidiln.cpp",
-        "third_party/icu/source/common/ubiditransform.cpp",
-        "third_party/icu/source/common/ubidiwrt.cpp",
-        "third_party/icu/source/common/ubrk.cpp",
-        "third_party/icu/source/common/ucase.cpp",
-        "third_party/icu/source/common/ucasemap.cpp",
-        "third_party/icu/source/common/ucasemap_titlecase_brkiter.cpp",
-        "third_party/icu/source/common/ucat.cpp",
-        "third_party/icu/source/common/uchar.cpp",
-        "third_party/icu/source/common/ucharstrie.cpp",
-        "third_party/icu/source/common/ucharstriebuilder.cpp",
-        "third_party/icu/source/common/ucharstrieiterator.cpp",
-        "third_party/icu/source/common/uchriter.cpp",
-        "third_party/icu/source/common/ucln_cmn.cpp",
-        "third_party/icu/source/common/ucmndata.cpp",
-        "third_party/icu/source/common/ucnv.cpp",
-        "third_party/icu/source/common/ucnv2022.cpp",
-        "third_party/icu/source/common/ucnv_bld.cpp",
-        "third_party/icu/source/common/ucnv_cb.cpp",
-        "third_party/icu/source/common/ucnv_cnv.cpp",
-        "third_party/icu/source/common/ucnv_ct.cpp",
-        "third_party/icu/source/common/ucnv_err.cpp",
-        "third_party/icu/source/common/ucnv_ext.cpp",
-        "third_party/icu/source/common/ucnv_io.cpp",
-        "third_party/icu/source/common/ucnv_lmb.cpp",
-        "third_party/icu/source/common/ucnv_set.cpp",
-        "third_party/icu/source/common/ucnv_u16.cpp",
-        "third_party/icu/source/common/ucnv_u32.cpp",
-        "third_party/icu/source/common/ucnv_u7.cpp",
-        "third_party/icu/source/common/ucnv_u8.cpp",
-        "third_party/icu/source/common/ucnvbocu.cpp",
-        "third_party/icu/source/common/ucnvdisp.cpp",
-        "third_party/icu/source/common/ucnvhz.cpp",
-        "third_party/icu/source/common/ucnvisci.cpp",
-        "third_party/icu/source/common/ucnvlat1.cpp",
-        "third_party/icu/source/common/ucnvmbcs.cpp",
-        "third_party/icu/source/common/ucnvscsu.cpp",
-        "third_party/icu/source/common/ucnvsel.cpp",
-        "third_party/icu/source/common/ucol_swp.cpp",
-        "third_party/icu/source/common/ucptrie.cpp",
-        "third_party/icu/source/common/ucurr.cpp",
-        "third_party/icu/source/common/udata.cpp",
-        "third_party/icu/source/common/udatamem.cpp",
-        "third_party/icu/source/common/udataswp.cpp",
-        "third_party/icu/source/common/uenum.cpp",
-        "third_party/icu/source/common/uhash.cpp",
-        "third_party/icu/source/common/uhash_us.cpp",
-        "third_party/icu/source/common/uidna.cpp",
-        "third_party/icu/source/common/uinit.cpp",
-        "third_party/icu/source/common/uinvchar.cpp",
-        "third_party/icu/source/common/uiter.cpp",
-        "third_party/icu/source/common/ulist.cpp",
-        "third_party/icu/source/common/uloc.cpp",
-        "third_party/icu/source/common/uloc_keytype.cpp",
-        "third_party/icu/source/common/uloc_tag.cpp",
-        "third_party/icu/source/common/umapfile.cpp",
-        "third_party/icu/source/common/umath.cpp",
-        "third_party/icu/source/common/umutablecptrie.cpp",
-        "third_party/icu/source/common/umutex.cpp",
-        "third_party/icu/source/common/unames.cpp",
-        "third_party/icu/source/common/unifiedcache.cpp",
-        "third_party/icu/source/common/unifilt.cpp",
-        "third_party/icu/source/common/unifunct.cpp",
-        "third_party/icu/source/common/uniset.cpp",
-        "third_party/icu/source/common/uniset_closure.cpp",
-        "third_party/icu/source/common/uniset_props.cpp",
-        "third_party/icu/source/common/unisetspan.cpp",
-        "third_party/icu/source/common/unistr.cpp",
-        "third_party/icu/source/common/unistr_case.cpp",
-        "third_party/icu/source/common/unistr_case_locale.cpp",
-        "third_party/icu/source/common/unistr_cnv.cpp",
-        "third_party/icu/source/common/unistr_props.cpp",
-        "third_party/icu/source/common/unistr_titlecase_brkiter.cpp",
-        "third_party/icu/source/common/unorm.cpp",
-        "third_party/icu/source/common/unormcmp.cpp",
-        "third_party/icu/source/common/uobject.cpp",
-        "third_party/icu/source/common/uprops.cpp",
-        "third_party/icu/source/common/ures_cnv.cpp",
-        "third_party/icu/source/common/uresbund.cpp",
-        "third_party/icu/source/common/uresdata.cpp",
-        "third_party/icu/source/common/usc_impl.cpp",
-        "third_party/icu/source/common/uscript.cpp",
-        "third_party/icu/source/common/uscript_props.cpp",
-        "third_party/icu/source/common/uset.cpp",
-        "third_party/icu/source/common/uset_props.cpp",
-        "third_party/icu/source/common/usetiter.cpp",
-        "third_party/icu/source/common/ushape.cpp",
-        "third_party/icu/source/common/usprep.cpp",
-        "third_party/icu/source/common/ustack.cpp",
-        "third_party/icu/source/common/ustr_cnv.cpp",
-        "third_party/icu/source/common/ustr_titlecase_brkiter.cpp",
-        "third_party/icu/source/common/ustr_wcs.cpp",
-        "third_party/icu/source/common/ustrcase.cpp",
-        "third_party/icu/source/common/ustrcase_locale.cpp",
-        "third_party/icu/source/common/ustrenum.cpp",
-        "third_party/icu/source/common/ustrfmt.cpp",
-        "third_party/icu/source/common/ustring.cpp",
-        "third_party/icu/source/common/ustrtrns.cpp",
-        "third_party/icu/source/common/utext.cpp",
-        "third_party/icu/source/common/utf_impl.cpp",
-        "third_party/icu/source/common/util.cpp",
-        "third_party/icu/source/common/util_props.cpp",
-        "third_party/icu/source/common/utrace.cpp",
-        "third_party/icu/source/common/utrie.cpp",
-        "third_party/icu/source/common/utrie2.cpp",
-        "third_party/icu/source/common/utrie2_builder.cpp",
-        "third_party/icu/source/common/utrie_swap.cpp",
-        "third_party/icu/source/common/uts46.cpp",
-        "third_party/icu/source/common/utypes.cpp",
-        "third_party/icu/source/common/uvector.cpp",
-        "third_party/icu/source/common/uvectr32.cpp",
-        "third_party/icu/source/common/uvectr64.cpp",
-        "third_party/icu/source/common/wintz.cpp",
-        "third_party/icu/source/stubdata/stubdata.cpp",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_DLOPEN=0",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUCONFIG_ONLY_HTML_CONVERSION=1",
-        "-DUCONFIG_USE_WINDOWS_LCID_MAPPING_API=0",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_CHARSET_IS_UTF8=1",
-        "-DU_COMMON_IMPLEMENTATION",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_ICUDATAENTRY_IN_COMMON",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    rtti: true,
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/libevent:libevent
-cc_library_static {
-    name: "cronet_aml_third_party_libevent_libevent",
-    srcs: [
-        "third_party/libevent/buffer.c",
-        "third_party/libevent/epoll.c",
-        "third_party/libevent/evbuffer.c",
-        "third_party/libevent/evdns.c",
-        "third_party/libevent/event.c",
-        "third_party/libevent/event_tagging.c",
-        "third_party/libevent/evrpc.c",
-        "third_party/libevent/evutil.c",
-        "third_party/libevent/http.c",
-        "third_party/libevent/log.c",
-        "third_party/libevent/poll.c",
-        "third_party/libevent/select.c",
-        "third_party/libevent/signal.c",
-        "third_party/libevent/strlcpy.c",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_CONFIG_H",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/libevent/android/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/libevent:libevent__testing
-cc_library_static {
-    name: "cronet_aml_third_party_libevent_libevent__testing",
-    srcs: [
-        "third_party/libevent/buffer.c",
-        "third_party/libevent/epoll.c",
-        "third_party/libevent/evbuffer.c",
-        "third_party/libevent/evdns.c",
-        "third_party/libevent/event.c",
-        "third_party/libevent/event_tagging.c",
-        "third_party/libevent/evrpc.c",
-        "third_party/libevent/evutil.c",
-        "third_party/libevent/http.c",
-        "third_party/libevent/log.c",
-        "third_party/libevent/poll.c",
-        "third_party/libevent/select.c",
-        "third_party/libevent/signal.c",
-        "third_party/libevent/strlcpy.c",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_CONFIG_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-            ],
-            local_include_dirs: [
-                "third_party/libevent/android/",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-            local_include_dirs: [
-                "third_party/libevent/android/",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-msse3",
-            ],
-            local_include_dirs: [
-                "third_party/libevent/android/",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            local_include_dirs: [
-                "third_party/libevent/android/",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            local_include_dirs: [
-                "third_party/libevent/linux/",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/libxml:libxml__testing
-cc_library_static {
-    name: "cronet_aml_third_party_libxml_libxml__testing",
-    srcs: [
-        "third_party/libxml/src/HTMLparser.c",
-        "third_party/libxml/src/HTMLtree.c",
-        "third_party/libxml/src/SAX2.c",
-        "third_party/libxml/src/buf.c",
-        "third_party/libxml/src/chvalid.c",
-        "third_party/libxml/src/dict.c",
-        "third_party/libxml/src/encoding.c",
-        "third_party/libxml/src/entities.c",
-        "third_party/libxml/src/error.c",
-        "third_party/libxml/src/globals.c",
-        "third_party/libxml/src/hash.c",
-        "third_party/libxml/src/list.c",
-        "third_party/libxml/src/parser.c",
-        "third_party/libxml/src/parserInternals.c",
-        "third_party/libxml/src/pattern.c",
-        "third_party/libxml/src/threads.c",
-        "third_party/libxml/src/tree.c",
-        "third_party/libxml/src/uri.c",
-        "third_party/libxml/src/valid.c",
-        "third_party/libxml/src/xmlIO.c",
-        "third_party/libxml/src/xmlmemory.c",
-        "third_party/libxml/src/xmlreader.c",
-        "third_party/libxml/src/xmlsave.c",
-        "third_party/libxml/src/xmlstring.c",
-        "third_party/libxml/src/xmlunicode.c",
-        "third_party/libxml/src/xmlwriter.c",
-        "third_party/libxml/src/xpath.c",
-    ],
-    shared_libs: [
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_REENTRANT",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/libxml/linux/",
-        "third_party/libxml/linux/include/",
-        "third_party/libxml/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/libxml:libxml_utils__testing
-cc_library_static {
-    name: "cronet_aml_third_party_libxml_libxml_utils__testing",
-    srcs: [
-        "third_party/libxml/chromium/libxml_utils.cc",
-    ],
-    shared_libs: [
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/libxml/linux/include/",
-        "third_party/libxml/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/libxml:xml_reader__testing
-cc_library_static {
-    name: "cronet_aml_third_party_libxml_xml_reader__testing",
-    srcs: [
-        "third_party/libxml/chromium/xml_reader.cc",
-    ],
-    shared_libs: [
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libxml_libxml__testing",
-        "cronet_aml_third_party_libxml_libxml_utils__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_CHROMIUM_ICU=1",
-        "-DU_ENABLE_DYLOAD=0",
-        "-DU_ENABLE_RESOURCE_TRACING=0",
-        "-DU_ENABLE_TRACING=1",
-        "-DU_STATIC_IMPLEMENTATION",
-        "-DU_USING_ICU_NAMESPACE=0",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/icu/source/common/",
-        "third_party/icu/source/i18n/",
-        "third_party/libxml/linux/include/",
-        "third_party/libxml/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/metrics_proto:metrics_proto__testing
-cc_genrule {
-    name: "cronet_aml_third_party_metrics_proto_metrics_proto__testing_gen",
-    srcs: [
-        "third_party/metrics_proto/call_stack_profile.proto",
-        "third_party/metrics_proto/cast_logs.proto",
-        "third_party/metrics_proto/chrome_os_app_list_launch_event.proto",
-        "third_party/metrics_proto/chrome_searchbox_stats.proto",
-        "third_party/metrics_proto/chrome_user_metrics_extension.proto",
-        "third_party/metrics_proto/custom_tab_session.proto",
-        "third_party/metrics_proto/execution_context.proto",
-        "third_party/metrics_proto/extension_install.proto",
-        "third_party/metrics_proto/histogram_event.proto",
-        "third_party/metrics_proto/omnibox_event.proto",
-        "third_party/metrics_proto/omnibox_focus_type.proto",
-        "third_party/metrics_proto/omnibox_input_type.proto",
-        "third_party/metrics_proto/perf_data.proto",
-        "third_party/metrics_proto/perf_stat.proto",
-        "third_party/metrics_proto/printer_event.proto",
-        "third_party/metrics_proto/reporting_info.proto",
-        "third_party/metrics_proto/sampled_profile.proto",
-        "third_party/metrics_proto/structured_data.proto",
-        "third_party/metrics_proto/system_profile.proto",
-        "third_party/metrics_proto/trace_log.proto",
-        "third_party/metrics_proto/translate_event.proto",
-        "third_party/metrics_proto/ukm/aggregate.proto",
-        "third_party/metrics_proto/ukm/entry.proto",
-        "third_party/metrics_proto/ukm/report.proto",
-        "third_party/metrics_proto/ukm/source.proto",
-        "third_party/metrics_proto/user_action_event.proto",
-        "third_party/metrics_proto/user_demographics.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/third_party/metrics_proto --cpp_out=lite=true:$(genDir)/external/cronet/third_party/metrics_proto/ $(in)",
-    out: [
-        "external/cronet/third_party/metrics_proto/call_stack_profile.pb.cc",
-        "external/cronet/third_party/metrics_proto/cast_logs.pb.cc",
-        "external/cronet/third_party/metrics_proto/chrome_os_app_list_launch_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/chrome_searchbox_stats.pb.cc",
-        "external/cronet/third_party/metrics_proto/chrome_user_metrics_extension.pb.cc",
-        "external/cronet/third_party/metrics_proto/custom_tab_session.pb.cc",
-        "external/cronet/third_party/metrics_proto/execution_context.pb.cc",
-        "external/cronet/third_party/metrics_proto/extension_install.pb.cc",
-        "external/cronet/third_party/metrics_proto/histogram_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/omnibox_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/omnibox_focus_type.pb.cc",
-        "external/cronet/third_party/metrics_proto/omnibox_input_type.pb.cc",
-        "external/cronet/third_party/metrics_proto/perf_data.pb.cc",
-        "external/cronet/third_party/metrics_proto/perf_stat.pb.cc",
-        "external/cronet/third_party/metrics_proto/printer_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/reporting_info.pb.cc",
-        "external/cronet/third_party/metrics_proto/sampled_profile.pb.cc",
-        "external/cronet/third_party/metrics_proto/structured_data.pb.cc",
-        "external/cronet/third_party/metrics_proto/system_profile.pb.cc",
-        "external/cronet/third_party/metrics_proto/trace_log.pb.cc",
-        "external/cronet/third_party/metrics_proto/translate_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/aggregate.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/entry.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/report.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/source.pb.cc",
-        "external/cronet/third_party/metrics_proto/user_action_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/user_demographics.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //third_party/metrics_proto:metrics_proto__testing
-cc_genrule {
-    name: "cronet_aml_third_party_metrics_proto_metrics_proto__testing_gen_headers",
-    srcs: [
-        "third_party/metrics_proto/call_stack_profile.proto",
-        "third_party/metrics_proto/cast_logs.proto",
-        "third_party/metrics_proto/chrome_os_app_list_launch_event.proto",
-        "third_party/metrics_proto/chrome_searchbox_stats.proto",
-        "third_party/metrics_proto/chrome_user_metrics_extension.proto",
-        "third_party/metrics_proto/custom_tab_session.proto",
-        "third_party/metrics_proto/execution_context.proto",
-        "third_party/metrics_proto/extension_install.proto",
-        "third_party/metrics_proto/histogram_event.proto",
-        "third_party/metrics_proto/omnibox_event.proto",
-        "third_party/metrics_proto/omnibox_focus_type.proto",
-        "third_party/metrics_proto/omnibox_input_type.proto",
-        "third_party/metrics_proto/perf_data.proto",
-        "third_party/metrics_proto/perf_stat.proto",
-        "third_party/metrics_proto/printer_event.proto",
-        "third_party/metrics_proto/reporting_info.proto",
-        "third_party/metrics_proto/sampled_profile.proto",
-        "third_party/metrics_proto/structured_data.proto",
-        "third_party/metrics_proto/system_profile.proto",
-        "third_party/metrics_proto/trace_log.proto",
-        "third_party/metrics_proto/translate_event.proto",
-        "third_party/metrics_proto/ukm/aggregate.proto",
-        "third_party/metrics_proto/ukm/entry.proto",
-        "third_party/metrics_proto/ukm/report.proto",
-        "third_party/metrics_proto/ukm/source.proto",
-        "third_party/metrics_proto/user_action_event.proto",
-        "third_party/metrics_proto/user_demographics.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/third_party/metrics_proto --cpp_out=lite=true:$(genDir)/external/cronet/third_party/metrics_proto/ $(in)",
-    out: [
-        "external/cronet/third_party/metrics_proto/call_stack_profile.pb.h",
-        "external/cronet/third_party/metrics_proto/cast_logs.pb.h",
-        "external/cronet/third_party/metrics_proto/chrome_os_app_list_launch_event.pb.h",
-        "external/cronet/third_party/metrics_proto/chrome_searchbox_stats.pb.h",
-        "external/cronet/third_party/metrics_proto/chrome_user_metrics_extension.pb.h",
-        "external/cronet/third_party/metrics_proto/custom_tab_session.pb.h",
-        "external/cronet/third_party/metrics_proto/execution_context.pb.h",
-        "external/cronet/third_party/metrics_proto/extension_install.pb.h",
-        "external/cronet/third_party/metrics_proto/histogram_event.pb.h",
-        "external/cronet/third_party/metrics_proto/omnibox_event.pb.h",
-        "external/cronet/third_party/metrics_proto/omnibox_focus_type.pb.h",
-        "external/cronet/third_party/metrics_proto/omnibox_input_type.pb.h",
-        "external/cronet/third_party/metrics_proto/perf_data.pb.h",
-        "external/cronet/third_party/metrics_proto/perf_stat.pb.h",
-        "external/cronet/third_party/metrics_proto/printer_event.pb.h",
-        "external/cronet/third_party/metrics_proto/reporting_info.pb.h",
-        "external/cronet/third_party/metrics_proto/sampled_profile.pb.h",
-        "external/cronet/third_party/metrics_proto/structured_data.pb.h",
-        "external/cronet/third_party/metrics_proto/system_profile.pb.h",
-        "external/cronet/third_party/metrics_proto/trace_log.pb.h",
-        "external/cronet/third_party/metrics_proto/translate_event.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/aggregate.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/entry.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/report.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/source.pb.h",
-        "external/cronet/third_party/metrics_proto/user_action_event.pb.h",
-        "external/cronet/third_party/metrics_proto/user_demographics.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "protos",
-        "third_party/metrics_proto",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //third_party/metrics_proto:metrics_proto
-cc_genrule {
-    name: "cronet_aml_third_party_metrics_proto_metrics_proto_gen",
-    srcs: [
-        "third_party/metrics_proto/call_stack_profile.proto",
-        "third_party/metrics_proto/cast_logs.proto",
-        "third_party/metrics_proto/chrome_os_app_list_launch_event.proto",
-        "third_party/metrics_proto/chrome_searchbox_stats.proto",
-        "third_party/metrics_proto/chrome_user_metrics_extension.proto",
-        "third_party/metrics_proto/custom_tab_session.proto",
-        "third_party/metrics_proto/execution_context.proto",
-        "third_party/metrics_proto/extension_install.proto",
-        "third_party/metrics_proto/histogram_event.proto",
-        "third_party/metrics_proto/omnibox_event.proto",
-        "third_party/metrics_proto/omnibox_focus_type.proto",
-        "third_party/metrics_proto/omnibox_input_type.proto",
-        "third_party/metrics_proto/perf_data.proto",
-        "third_party/metrics_proto/perf_stat.proto",
-        "third_party/metrics_proto/printer_event.proto",
-        "third_party/metrics_proto/reporting_info.proto",
-        "third_party/metrics_proto/sampled_profile.proto",
-        "third_party/metrics_proto/structured_data.proto",
-        "third_party/metrics_proto/system_profile.proto",
-        "third_party/metrics_proto/trace_log.proto",
-        "third_party/metrics_proto/translate_event.proto",
-        "third_party/metrics_proto/ukm/aggregate.proto",
-        "third_party/metrics_proto/ukm/entry.proto",
-        "third_party/metrics_proto/ukm/report.proto",
-        "third_party/metrics_proto/ukm/source.proto",
-        "third_party/metrics_proto/user_action_event.proto",
-        "third_party/metrics_proto/user_demographics.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/third_party/metrics_proto --cpp_out=lite=true:$(genDir)/external/cronet/third_party/metrics_proto/ $(in)",
-    out: [
-        "external/cronet/third_party/metrics_proto/call_stack_profile.pb.cc",
-        "external/cronet/third_party/metrics_proto/cast_logs.pb.cc",
-        "external/cronet/third_party/metrics_proto/chrome_os_app_list_launch_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/chrome_searchbox_stats.pb.cc",
-        "external/cronet/third_party/metrics_proto/chrome_user_metrics_extension.pb.cc",
-        "external/cronet/third_party/metrics_proto/custom_tab_session.pb.cc",
-        "external/cronet/third_party/metrics_proto/execution_context.pb.cc",
-        "external/cronet/third_party/metrics_proto/extension_install.pb.cc",
-        "external/cronet/third_party/metrics_proto/histogram_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/omnibox_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/omnibox_focus_type.pb.cc",
-        "external/cronet/third_party/metrics_proto/omnibox_input_type.pb.cc",
-        "external/cronet/third_party/metrics_proto/perf_data.pb.cc",
-        "external/cronet/third_party/metrics_proto/perf_stat.pb.cc",
-        "external/cronet/third_party/metrics_proto/printer_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/reporting_info.pb.cc",
-        "external/cronet/third_party/metrics_proto/sampled_profile.pb.cc",
-        "external/cronet/third_party/metrics_proto/structured_data.pb.cc",
-        "external/cronet/third_party/metrics_proto/system_profile.pb.cc",
-        "external/cronet/third_party/metrics_proto/trace_log.pb.cc",
-        "external/cronet/third_party/metrics_proto/translate_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/aggregate.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/entry.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/report.pb.cc",
-        "external/cronet/third_party/metrics_proto/ukm/source.pb.cc",
-        "external/cronet/third_party/metrics_proto/user_action_event.pb.cc",
-        "external/cronet/third_party/metrics_proto/user_demographics.pb.cc",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //third_party/metrics_proto:metrics_proto
-cc_genrule {
-    name: "cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
-    srcs: [
-        "third_party/metrics_proto/call_stack_profile.proto",
-        "third_party/metrics_proto/cast_logs.proto",
-        "third_party/metrics_proto/chrome_os_app_list_launch_event.proto",
-        "third_party/metrics_proto/chrome_searchbox_stats.proto",
-        "third_party/metrics_proto/chrome_user_metrics_extension.proto",
-        "third_party/metrics_proto/custom_tab_session.proto",
-        "third_party/metrics_proto/execution_context.proto",
-        "third_party/metrics_proto/extension_install.proto",
-        "third_party/metrics_proto/histogram_event.proto",
-        "third_party/metrics_proto/omnibox_event.proto",
-        "third_party/metrics_proto/omnibox_focus_type.proto",
-        "third_party/metrics_proto/omnibox_input_type.proto",
-        "third_party/metrics_proto/perf_data.proto",
-        "third_party/metrics_proto/perf_stat.proto",
-        "third_party/metrics_proto/printer_event.proto",
-        "third_party/metrics_proto/reporting_info.proto",
-        "third_party/metrics_proto/sampled_profile.proto",
-        "third_party/metrics_proto/structured_data.proto",
-        "third_party/metrics_proto/system_profile.proto",
-        "third_party/metrics_proto/trace_log.proto",
-        "third_party/metrics_proto/translate_event.proto",
-        "third_party/metrics_proto/ukm/aggregate.proto",
-        "third_party/metrics_proto/ukm/entry.proto",
-        "third_party/metrics_proto/ukm/report.proto",
-        "third_party/metrics_proto/ukm/source.proto",
-        "third_party/metrics_proto/user_action_event.proto",
-        "third_party/metrics_proto/user_demographics.proto",
-    ],
-    tools: [
-        "cronet_aml_third_party_protobuf_protoc",
-    ],
-    cmd: "$(location cronet_aml_third_party_protobuf_protoc) --proto_path=external/cronet/third_party/metrics_proto --cpp_out=lite=true:$(genDir)/external/cronet/third_party/metrics_proto/ $(in)",
-    out: [
-        "external/cronet/third_party/metrics_proto/call_stack_profile.pb.h",
-        "external/cronet/third_party/metrics_proto/cast_logs.pb.h",
-        "external/cronet/third_party/metrics_proto/chrome_os_app_list_launch_event.pb.h",
-        "external/cronet/third_party/metrics_proto/chrome_searchbox_stats.pb.h",
-        "external/cronet/third_party/metrics_proto/chrome_user_metrics_extension.pb.h",
-        "external/cronet/third_party/metrics_proto/custom_tab_session.pb.h",
-        "external/cronet/third_party/metrics_proto/execution_context.pb.h",
-        "external/cronet/third_party/metrics_proto/extension_install.pb.h",
-        "external/cronet/third_party/metrics_proto/histogram_event.pb.h",
-        "external/cronet/third_party/metrics_proto/omnibox_event.pb.h",
-        "external/cronet/third_party/metrics_proto/omnibox_focus_type.pb.h",
-        "external/cronet/third_party/metrics_proto/omnibox_input_type.pb.h",
-        "external/cronet/third_party/metrics_proto/perf_data.pb.h",
-        "external/cronet/third_party/metrics_proto/perf_stat.pb.h",
-        "external/cronet/third_party/metrics_proto/printer_event.pb.h",
-        "external/cronet/third_party/metrics_proto/reporting_info.pb.h",
-        "external/cronet/third_party/metrics_proto/sampled_profile.pb.h",
-        "external/cronet/third_party/metrics_proto/structured_data.pb.h",
-        "external/cronet/third_party/metrics_proto/system_profile.pb.h",
-        "external/cronet/third_party/metrics_proto/trace_log.pb.h",
-        "external/cronet/third_party/metrics_proto/translate_event.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/aggregate.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/entry.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/report.pb.h",
-        "external/cronet/third_party/metrics_proto/ukm/source.pb.h",
-        "external/cronet/third_party/metrics_proto/user_action_event.pb.h",
-        "external/cronet/third_party/metrics_proto/user_demographics.pb.h",
-    ],
-    export_include_dirs: [
-        ".",
-        "protos",
-        "third_party/metrics_proto",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //third_party/modp_b64:modp_b64
-cc_library_static {
-    name: "cronet_aml_third_party_modp_b64_modp_b64",
-    srcs: [
-        "third_party/modp_b64/modp_b64.cc",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/modp_b64:modp_b64__testing
-cc_library_static {
-    name: "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    srcs: [
-        "third_party/modp_b64/modp_b64.cc",
-    ],
-    host_supported: true,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-    ],
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-DANDROID",
-                "-DANDROID_NDK_VERSION_ROLL=r23_1",
-                "-DHAVE_SYS_UIO_H",
-                "-Oz",
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-        host: {
-            cflags: [
-                "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-                "-DUSE_AURA=1",
-                "-DUSE_OZONE=1",
-                "-DUSE_UDEV",
-                "-D_FILE_OFFSET_BITS=64",
-                "-D_LARGEFILE64_SOURCE",
-                "-D_LARGEFILE_SOURCE",
-                "-O2",
-                "-fstack-protector",
-                "-msse3",
-            ],
-            compile_multilib: "64",
-        },
-    },
-}
-
-// GN: //third_party/protobuf:protobuf_full
-cc_library_static {
-    name: "cronet_aml_third_party_protobuf_protobuf_full",
-    srcs: [
-        "third_party/protobuf/src/google/protobuf/any.cc",
-        "third_party/protobuf/src/google/protobuf/any.pb.cc",
-        "third_party/protobuf/src/google/protobuf/any_lite.cc",
-        "third_party/protobuf/src/google/protobuf/api.pb.cc",
-        "third_party/protobuf/src/google/protobuf/arena.cc",
-        "third_party/protobuf/src/google/protobuf/arenastring.cc",
-        "third_party/protobuf/src/google/protobuf/arenaz_sampler.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/importer.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/parser.cc",
-        "third_party/protobuf/src/google/protobuf/descriptor.cc",
-        "third_party/protobuf/src/google/protobuf/descriptor.pb.cc",
-        "third_party/protobuf/src/google/protobuf/descriptor_database.cc",
-        "third_party/protobuf/src/google/protobuf/duration.pb.cc",
-        "third_party/protobuf/src/google/protobuf/dynamic_message.cc",
-        "third_party/protobuf/src/google/protobuf/empty.pb.cc",
-        "third_party/protobuf/src/google/protobuf/extension_set.cc",
-        "third_party/protobuf/src/google/protobuf/extension_set_heavy.cc",
-        "third_party/protobuf/src/google/protobuf/field_mask.pb.cc",
-        "third_party/protobuf/src/google/protobuf/generated_enum_util.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_bases.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_reflection.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_tctable_full.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
-        "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
-        "third_party/protobuf/src/google/protobuf/inlined_string_field.cc",
-        "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
-        "third_party/protobuf/src/google/protobuf/io/gzip_stream.cc",
-        "third_party/protobuf/src/google/protobuf/io/io_win32.cc",
-        "third_party/protobuf/src/google/protobuf/io/printer.cc",
-        "third_party/protobuf/src/google/protobuf/io/strtod.cc",
-        "third_party/protobuf/src/google/protobuf/io/tokenizer.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
-        "third_party/protobuf/src/google/protobuf/map.cc",
-        "third_party/protobuf/src/google/protobuf/map_field.cc",
-        "third_party/protobuf/src/google/protobuf/message.cc",
-        "third_party/protobuf/src/google/protobuf/message_lite.cc",
-        "third_party/protobuf/src/google/protobuf/parse_context.cc",
-        "third_party/protobuf/src/google/protobuf/reflection_ops.cc",
-        "third_party/protobuf/src/google/protobuf/repeated_field.cc",
-        "third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc",
-        "third_party/protobuf/src/google/protobuf/service.cc",
-        "third_party/protobuf/src/google/protobuf/source_context.pb.cc",
-        "third_party/protobuf/src/google/protobuf/struct.pb.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/common.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/status.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/substitute.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/time.cc",
-        "third_party/protobuf/src/google/protobuf/text_format.cc",
-        "third_party/protobuf/src/google/protobuf/timestamp.pb.cc",
-        "third_party/protobuf/src/google/protobuf/type.pb.cc",
-        "third_party/protobuf/src/google/protobuf/unknown_field_set.cc",
-        "third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc",
-        "third_party/protobuf/src/google/protobuf/util/field_comparator.cc",
-        "third_party/protobuf/src/google/protobuf/util/field_mask_util.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/error_listener.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/json_escaping.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/object_writer.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/proto_writer.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/type_info.cc",
-        "third_party/protobuf/src/google/protobuf/util/internal/utility.cc",
-        "third_party/protobuf/src/google/protobuf/util/json_util.cc",
-        "third_party/protobuf/src/google/protobuf/util/message_differencer.cc",
-        "third_party/protobuf/src/google/protobuf/util/time_util.cc",
-        "third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc",
-        "third_party/protobuf/src/google/protobuf/wire_format.cc",
-        "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
-        "third_party/protobuf/src/google/protobuf/wrappers.pb.cc",
-    ],
-    shared_libs: [
-        "libz",
-    ],
-    host_supported: true,
-    device_supported: false,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_ZLIB",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_AURA=1",
-        "-DUSE_OZONE=1",
-        "-DUSE_UDEV",
-        "-D_FILE_OFFSET_BITS=64",
-        "-D_GNU_SOURCE",
-        "-D_LARGEFILE64_SOURCE",
-        "-D_LARGEFILE_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fstack-protector",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-        "-msse3",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-}
-
-// GN: //third_party/protobuf:protobuf_lite
-cc_library_static {
-    name: "cronet_aml_third_party_protobuf_protobuf_lite",
-    srcs: [
-        "third_party/protobuf/src/google/protobuf/any_lite.cc",
-        "third_party/protobuf/src/google/protobuf/arena.cc",
-        "third_party/protobuf/src/google/protobuf/arenastring.cc",
-        "third_party/protobuf/src/google/protobuf/arenaz_sampler.cc",
-        "third_party/protobuf/src/google/protobuf/extension_set.cc",
-        "third_party/protobuf/src/google/protobuf/generated_enum_util.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
-        "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
-        "third_party/protobuf/src/google/protobuf/inlined_string_field.cc",
-        "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
-        "third_party/protobuf/src/google/protobuf/io/io_win32.cc",
-        "third_party/protobuf/src/google/protobuf/io/strtod.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
-        "third_party/protobuf/src/google/protobuf/map.cc",
-        "third_party/protobuf/src/google/protobuf/message_lite.cc",
-        "third_party/protobuf/src/google/protobuf/parse_context.cc",
-        "third_party/protobuf/src/google/protobuf/repeated_field.cc",
-        "third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/common.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/status.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/time.cc",
-        "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
-    ],
-    shared_libs: [
-        "liblog",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/protobuf:protobuf_lite__testing
-cc_library_static {
-    name: "cronet_aml_third_party_protobuf_protobuf_lite__testing",
-    srcs: [
-        "third_party/protobuf/src/google/protobuf/any_lite.cc",
-        "third_party/protobuf/src/google/protobuf/arena.cc",
-        "third_party/protobuf/src/google/protobuf/arenastring.cc",
-        "third_party/protobuf/src/google/protobuf/arenaz_sampler.cc",
-        "third_party/protobuf/src/google/protobuf/extension_set.cc",
-        "third_party/protobuf/src/google/protobuf/generated_enum_util.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
-        "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
-        "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
-        "third_party/protobuf/src/google/protobuf/inlined_string_field.cc",
-        "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
-        "third_party/protobuf/src/google/protobuf/io/io_win32.cc",
-        "third_party/protobuf/src/google/protobuf/io/strtod.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
-        "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
-        "third_party/protobuf/src/google/protobuf/map.cc",
-        "third_party/protobuf/src/google/protobuf/message_lite.cc",
-        "third_party/protobuf/src/google/protobuf/parse_context.cc",
-        "third_party/protobuf/src/google/protobuf/repeated_field.cc",
-        "third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/common.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/status.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
-        "third_party/protobuf/src/google/protobuf/stubs/time.cc",
-        "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
-    ],
-    shared_libs: [
-        "liblog",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DHAVE_SYS_UIO_H",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //third_party/protobuf:protoc
-cc_binary {
-    name: "cronet_aml_third_party_protobuf_protoc",
-    srcs: [
-        "third_party/protobuf/src/google/protobuf/compiler/main.cc",
-    ],
-    shared_libs: [
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_buildtools_third_party_libc___libc__",
-        "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
-        "cronet_aml_third_party_protobuf_protobuf_full",
-        "cronet_aml_third_party_protobuf_protoc_lib",
-    ],
-    host_supported: true,
-    device_supported: false,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_AURA=1",
-        "-DUSE_OZONE=1",
-        "-DUSE_UDEV",
-        "-D_FILE_OFFSET_BITS=64",
-        "-D_GNU_SOURCE",
-        "-D_LARGEFILE64_SOURCE",
-        "-D_LARGEFILE_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fstack-protector",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-        "-msse3",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-}
-
-// GN: //third_party/protobuf:protoc_lib
-cc_library_static {
-    name: "cronet_aml_third_party_protobuf_protoc_lib",
-    srcs: [
-        "third_party/protobuf/src/google/protobuf/compiler/code_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/command_line_interface.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_context.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_extension.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_extension_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_field_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_message_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_service.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/java/java_string_field_lite.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/js/well_known_types_embed.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/php/php_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/plugin.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/python/python_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/python/python_helpers.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/python/python_pyi_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/subprocess.cc",
-        "third_party/protobuf/src/google/protobuf/compiler/zip_writer.cc",
-    ],
-    shared_libs: [
-        "libz",
-    ],
-    static_libs: [
-        "cronet_aml_third_party_protobuf_protobuf_full",
-    ],
-    host_supported: true,
-    device_supported: false,
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DCR_SYSROOT_KEY=20220331T153654Z-0",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
-        "-DGOOGLE_PROTOBUF_NO_RTTI",
-        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-        "-DHAVE_PTHREAD",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-DUSE_AURA=1",
-        "-DUSE_OZONE=1",
-        "-DUSE_UDEV",
-        "-D_FILE_OFFSET_BITS=64",
-        "-D_GNU_SOURCE",
-        "-D_LARGEFILE64_SOURCE",
-        "-D_LARGEFILE_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-O2",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fstack-protector",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-        "-msse3",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/protobuf/src/",
-    ],
-    cpp_std: "c++20",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-    ],
-}
-
-// GN: //url:buildflags
-cc_genrule {
-    name: "cronet_aml_url_buildflags",
-    cmd: "echo '--flags USE_PLATFORM_ICU_ALTERNATIVES=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//url:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "url/buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //url:buildflags__testing
-cc_genrule {
-    name: "cronet_aml_url_buildflags__testing",
-    cmd: "echo '--flags USE_PLATFORM_ICU_ALTERNATIVES=\"true\"' | " +
-         "$(location build/write_buildflag_header.py) --output " +
-         "$(out) " +
-         "--rulename " +
-         "//url:buildflags " +
-         "--gen-dir " +
-         ". " +
-         "--definitions " +
-         "/dev/stdin",
-    out: [
-        "url/buildflags.h",
-    ],
-    tool_files: [
-        "build/write_buildflag_header.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //url:url
-cc_library_static {
-    name: "cronet_aml_url_url",
-    srcs: [
-        "url/gurl.cc",
-        "url/origin.cc",
-        "url/scheme_host_port.cc",
-        "url/third_party/mozilla/url_parse.cc",
-        "url/url_canon.cc",
-        "url/url_canon_etc.cc",
-        "url/url_canon_filesystemurl.cc",
-        "url/url_canon_fileurl.cc",
-        "url/url_canon_host.cc",
-        "url/url_canon_internal.cc",
-        "url/url_canon_ip.cc",
-        "url/url_canon_mailtourl.cc",
-        "url/url_canon_path.cc",
-        "url/url_canon_pathurl.cc",
-        "url/url_canon_query.cc",
-        "url/url_canon_relative.cc",
-        "url/url_canon_stdstring.cc",
-        "url/url_canon_stdurl.cc",
-        "url/url_constants.cc",
-        "url/url_idna_icu_alternatives_android.cc",
-        "url/url_parse_file.cc",
-        "url/url_util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc",
-        "cronet_aml_base_base",
-        "cronet_aml_base_base_static",
-        "cronet_aml_base_nodebug_assertion",
-        "cronet_aml_base_third_party_double_conversion_double_conversion",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access",
-        "cronet_aml_third_party_android_ndk_cpu_features",
-        "cronet_aml_third_party_ashmem_ashmem",
-        "cronet_aml_third_party_boringssl_boringssl",
-        "cronet_aml_third_party_boringssl_boringssl_asm",
-        "cronet_aml_third_party_icu_icui18n",
-        "cronet_aml_third_party_icu_icuuc_private",
-        "cronet_aml_third_party_libevent_libevent",
-        "cronet_aml_third_party_modp_b64_modp_b64",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_url_buildflags",
-        "cronet_aml_url_url_jni_headers",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags",
-        "cronet_aml_base_logging_buildflags",
-        "cronet_aml_build_chromeos_buildflags",
-        "cronet_aml_url_buildflags",
-        "cronet_aml_url_url_jni_headers",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DIS_URL_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //url:url__testing
-cc_library_static {
-    name: "cronet_aml_url_url__testing",
-    srcs: [
-        "url/gurl.cc",
-        "url/origin.cc",
-        "url/scheme_host_port.cc",
-        "url/third_party/mozilla/url_parse.cc",
-        "url/url_canon.cc",
-        "url/url_canon_etc.cc",
-        "url/url_canon_filesystemurl.cc",
-        "url/url_canon_fileurl.cc",
-        "url/url_canon_host.cc",
-        "url/url_canon_internal.cc",
-        "url/url_canon_ip.cc",
-        "url/url_canon_mailtourl.cc",
-        "url/url_canon_path.cc",
-        "url/url_canon_pathurl.cc",
-        "url/url_canon_query.cc",
-        "url/url_canon_relative.cc",
-        "url/url_canon_stdstring.cc",
-        "url/url_canon_stdurl.cc",
-        "url/url_constants.cc",
-        "url/url_idna_icu_alternatives_android.cc",
-        "url/url_parse_file.cc",
-        "url/url_util.cc",
-    ],
-    shared_libs: [
-        "libandroid",
-        "liblog",
-    ],
-    static_libs: [
-        "cronet_aml_base_allocator_partition_allocator_partition_alloc__testing",
-        "cronet_aml_base_base__testing",
-        "cronet_aml_base_base_static__testing",
-        "cronet_aml_base_nodebug_assertion__testing",
-        "cronet_aml_base_third_party_double_conversion_double_conversion__testing",
-        "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_base__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_log_severity__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_malloc_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_raw_logging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_spinlock_wait__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_strerror__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_base_throw_delegate__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_hashtablez_sampler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_container_raw_hash_set__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_debugging_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_demangle_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_examine_stack__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_failure_signal_handler__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_stacktrace__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_debugging_symbolize__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_city__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_hash_low_level_hash__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_numeric_int128__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_profiling_exponential_biased__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_distributions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_platform__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_pool_urbg__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_hwaes_impl__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_randen_slow__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_internal_seed_material__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_gen_exception__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_random_seed_sequences__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_status__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_status_statusor__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cord_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_functions__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_handle__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_cordz_info__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_str_format_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_strings_strings__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_graphcycles_internal__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_synchronization_synchronization__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_civil_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_internal_cctz_time_zone__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_time_time__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_optional_access__testing",
-        "cronet_aml_third_party_abseil_cpp_absl_types_bad_variant_access__testing",
-        "cronet_aml_third_party_android_ndk_cpu_features__testing",
-        "cronet_aml_third_party_ashmem_ashmem__testing",
-        "cronet_aml_third_party_boringssl_boringssl__testing",
-        "cronet_aml_third_party_boringssl_boringssl_asm__testing",
-        "cronet_aml_third_party_icu_icui18n__testing",
-        "cronet_aml_third_party_icu_icuuc_private__testing",
-        "cronet_aml_third_party_libevent_libevent__testing",
-        "cronet_aml_third_party_modp_b64_modp_b64__testing",
-    ],
-    generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_url_buildflags__testing",
-        "cronet_aml_url_url_jni_headers__testing",
-    ],
-    export_generated_headers: [
-        "cronet_aml_base_debugging_buildflags__testing",
-        "cronet_aml_base_logging_buildflags__testing",
-        "cronet_aml_build_chromeos_buildflags__testing",
-        "cronet_aml_url_buildflags__testing",
-        "cronet_aml_url_url_jni_headers__testing",
-    ],
-    defaults: [
-        "cronet_aml_defaults",
-    ],
-    cflags: [
-        "-DANDROID",
-        "-DANDROID_NDK_VERSION_ROLL=r23_1",
-        "-DCR_CLANG_REVISION=\"llvmorg-16-init-6578-g0d30e92f-2\"",
-        "-DCR_LIBCXX_REVISION=64d36e572d3f9719c5d75011a718f33f11126851",
-        "-DDYNAMIC_ANNOTATIONS_ENABLED=0",
-        "-DHAVE_SYS_UIO_H",
-        "-DIS_URL_IMPL",
-        "-DNDEBUG",
-        "-DNO_UNWIND_TABLES",
-        "-DNVALGRIND",
-        "-DOFFICIAL_BUILD",
-        "-D_FORTIFY_SOURCE=2",
-        "-D_GNU_SOURCE",
-        "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_FORMAT_MACROS",
-        "-Oz",
-        "-fdata-sections",
-        "-ffunction-sections",
-        "-fno-asynchronous-unwind-tables",
-        "-fno-unwind-tables",
-        "-fvisibility-inlines-hidden",
-        "-fvisibility=hidden",
-        "-g1",
-    ],
-    local_include_dirs: [
-        "./",
-        "buildtools/third_party/libc++/",
-        "buildtools/third_party/libc++/trunk/include",
-        "buildtools/third_party/libc++abi/trunk/include",
-        "third_party/abseil-cpp/",
-        "third_party/boringssl/src/include/",
-    ],
-    cpp_std: "c++17",
-    ldflags: [
-        "-Wl,--as-needed",
-        "-Wl,--gc-sections",
-        "-Wl,--icf=all",
-        "-Wl,--script,external/cronet/base/android/library_loader/anchor_functions.lds",
-        "-Wl,-wrap,asprintf",
-        "-Wl,-wrap,calloc",
-        "-Wl,-wrap,free",
-        "-Wl,-wrap,getcwd",
-        "-Wl,-wrap,malloc",
-        "-Wl,-wrap,malloc_usable_size",
-        "-Wl,-wrap,memalign",
-        "-Wl,-wrap,posix_memalign",
-        "-Wl,-wrap,pvalloc",
-        "-Wl,-wrap,realloc",
-        "-Wl,-wrap,realpath",
-        "-Wl,-wrap,strdup",
-        "-Wl,-wrap,strndup",
-        "-Wl,-wrap,valloc",
-        "-Wl,-wrap,vasprintf",
-    ],
-    target: {
-        android_arm: {
-            cflags: [
-                "-fstack-protector",
-            ],
-        },
-        android_arm64: {
-            cflags: [
-                "-fstack-protector",
-                "-mno-outline",
-                "-mno-outline-atomics",
-            ],
-        },
-        android_x86: {
-            cflags: [
-                "-msse3",
-            ],
-        },
-        android_x86_64: {
-            cflags: [
-                "-fstack-protector",
-                "-msse3",
-            ],
-        },
-    },
-}
-
-// GN: //url:url_jni_headers
-cc_genrule {
-    name: "cronet_aml_url_url_jni_headers",
-    srcs: [
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-        "url/android/java/src/org/chromium/url/Origin.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/url/url_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "IDNStringUtil_jni.h " +
-         "--output_name " +
-         "Origin_jni.h " +
-         "--input_file " +
-         "$(location url/android/java/src/org/chromium/url/IDNStringUtil.java) " +
-         "--input_file " +
-         "$(location url/android/java/src/org/chromium/url/Origin.java) " +
-         "--package_prefix " +
-         "android.net.http.internal",
-    out: [
-        "url/url_jni_headers/IDNStringUtil_jni.h",
-        "url/url_jni_headers/Origin_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: //url:url_jni_headers__testing
-cc_genrule {
-    name: "cronet_aml_url_url_jni_headers__testing",
-    srcs: [
-        "url/android/java/src/org/chromium/url/IDNStringUtil.java",
-        "url/android/java/src/org/chromium/url/Origin.java",
-    ],
-    cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
-         "long " +
-         "--output_dir " +
-         "$(genDir)/url/url_jni_headers " +
-         "--includes " +
-         "base/android/jni_generator/jni_generator_helper.h " +
-         "--use_proxy_hash " +
-         "--output_name " +
-         "IDNStringUtil_jni.h " +
-         "--output_name " +
-         "Origin_jni.h " +
-         "--input_file " +
-         "$(location url/android/java/src/org/chromium/url/IDNStringUtil.java) " +
-         "--input_file " +
-         "$(location url/android/java/src/org/chromium/url/Origin.java)",
-    out: [
-        "url/url_jni_headers/IDNStringUtil_jni.h",
-        "url/url_jni_headers/Origin_jni.h",
-    ],
-    tool_files: [
-        "base/android/jni_generator/android_jar.classes",
-        "base/android/jni_generator/jni_generator.py",
-        "build/android/gyp/util/__init__.py",
-        "build/android/gyp/util/build_utils.py",
-        "build/gn_helpers.py",
-    ],
-    apex_available: [
-        "com.android.tethering",
-    ],
-}
-
-// GN: LICENSE
-license {
-    name: "external_cronet_license",
-    license_kinds: [
-        "SPDX-license-identifier-AFL-2.0",
-        "SPDX-license-identifier-Apache-2.0",
-        "SPDX-license-identifier-BSD",
-        "SPDX-license-identifier-BSL-1.0",
-        "SPDX-license-identifier-ICU",
-        "SPDX-license-identifier-ISC",
-        "SPDX-license-identifier-MIT",
-        "SPDX-license-identifier-MPL",
-        "SPDX-license-identifier-MPL-1.1",
-        "SPDX-license-identifier-MPL-2.0",
-        "SPDX-license-identifier-NCSA",
-        "SPDX-license-identifier-OpenSSL",
-        "SPDX-license-identifier-Unicode-DFS",
-        "legacy_unencumbered",
-    ],
-    license_text: [
-        "LICENSE",
-        "base/third_party/double_conversion/LICENSE",
-        "base/third_party/dynamic_annotations/LICENSE",
-        "base/third_party/icu/LICENSE",
-        "base/third_party/nspr/LICENSE",
-        "base/third_party/superfasthash/LICENSE",
-        "base/third_party/symbolize/LICENSE",
-        "base/third_party/valgrind/LICENSE",
-        "base/third_party/xdg_user_dirs/LICENSE",
-        "net/third_party/quiche/src/LICENSE",
-        "net/third_party/uri_template/LICENSE",
-        "third_party/abseil-cpp/LICENSE",
-        "third_party/ashmem/LICENSE",
-        "third_party/boringssl/src/LICENSE",
-        "third_party/boringssl/src/third_party/fiat/LICENSE",
-        "third_party/boringssl/src/third_party/googletest/LICENSE",
-        "third_party/boringssl/src/third_party/wycheproof_testvectors/LICENSE",
-        "third_party/brotli/LICENSE",
-        "third_party/icu/LICENSE",
-        "third_party/icu/scripts/LICENSE",
-        "third_party/libevent/LICENSE",
-        "third_party/metrics_proto/LICENSE",
-        "third_party/modp_b64/LICENSE",
-        "third_party/protobuf/LICENSE",
-        "third_party/protobuf/third_party/utf8_range/LICENSE",
-    ],
-}
-
diff --git a/tools/gn2bp/desc_arm.json b/tools/gn2bp/desc_arm.json
deleted file mode 100644
index 87b86e3..0000000
--- a/tools/gn2bp/desc_arm.json
+++ /dev/null
Binary files differ
diff --git a/tools/gn2bp/desc_arm64.json b/tools/gn2bp/desc_arm64.json
deleted file mode 100644
index 7b8bfe3..0000000
--- a/tools/gn2bp/desc_arm64.json
+++ /dev/null
Binary files differ
diff --git a/tools/gn2bp/desc_x64.json b/tools/gn2bp/desc_x64.json
deleted file mode 100644
index df8635a..0000000
--- a/tools/gn2bp/desc_x64.json
+++ /dev/null
Binary files differ
diff --git a/tools/gn2bp/desc_x86.json b/tools/gn2bp/desc_x86.json
deleted file mode 100644
index 707b9c7..0000000
--- a/tools/gn2bp/desc_x86.json
+++ /dev/null
Binary files differ
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
deleted file mode 100755
index d714a90..0000000
--- a/tools/gn2bp/gen_android_bp
+++ /dev/null
@@ -1,1909 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (C) 2022 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.
-
-# This tool translates a collection of BUILD.gn files into a mostly equivalent
-# Android.bp file for the Android Soong build system. The input to the tool is a
-# JSON description of the GN build definition generated with the following
-# command:
-#
-#   gn desc out --format=json --all-toolchains "//*" > desc.json
-#
-# The tool is then given a list of GN labels for which to generate Android.bp
-# build rules. The dependencies for the GN labels are squashed to the generated
-# Android.bp target, except for actions which get their own genrule. Some
-# libraries are also mapped to their Android equivalents -- see |builtin_deps|.
-
-import argparse
-import json
-import logging as log
-import operator
-import os
-import re
-import sys
-import copy
-from pathlib import Path
-
-import gn_utils
-
-ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
-# Default targets to translate to the blueprint file.
-DEFAULT_TARGETS = [
-    '//components/cronet/android:cronet',
-    '//components/cronet/android:cronet_android_mainline',
-]
-
-DEFAULT_TESTS = [
-  '//components/cronet/android:cronet_unittests_android__library',
-]
-
-EXTRAS_ANDROID_BP_FILE = "Android.extras.bp"
-
-CRONET_API_MODULE_NAME = "cronet_aml_api_java"
-# Defines a custom init_rc argument to be applied to the corresponding output
-# blueprint target.
-target_initrc = {
-    # TODO: this can probably be removed.
-}
-
-target_host_supported = [
-    # TODO: remove if this is not useful for the cronet build.
-]
-
-# Proto target groups which will be made public.
-proto_groups = {
-    # TODO: remove if this is not used for the cronet build.
-}
-
-# All module names are prefixed with this string to avoid collisions.
-module_prefix = 'cronet_aml_'
-
-# Shared libraries which are directly translated to Android system equivalents.
-shared_library_allowlist = [
-    'android',
-    'android.hardware.atrace@1.0',
-    'android.hardware.health@2.0',
-    'android.hardware.health-V1-ndk',
-    'android.hardware.power.stats@1.0',
-    "android.hardware.power.stats-V1-cpp",
-    'base',
-    'binder',
-    'binder_ndk',
-    'cutils',
-    'hidlbase',
-    'hidltransport',
-    'hwbinder',
-    'incident',
-    'log',
-    'services',
-    'statssocket',
-    "tracingproxy",
-    'utils',
-]
-
-# Static libraries which are directly translated to Android system equivalents.
-static_library_allowlist = [
-    'statslog_perfetto',
-]
-
-# Include directories that will be removed from all targets.
-local_include_dirs_denylist = [
-    'third_party/zlib/',
-]
-
-experimental_include_dirs_denylist = [
-    'third_party/brotli/include/',
-]
-
-# Name of the module which settings such as compiler flags for all other
-# modules.
-defaults_module = module_prefix + 'defaults'
-
-# Location of the project in the Android source tree.
-tree_path = 'external/cronet'
-
-# Path for the protobuf sources in the standalone build.
-buildtools_protobuf_src = '//buildtools/protobuf/src'
-
-# Location of the protobuf src dir in the Android source tree.
-android_protobuf_src = 'external/protobuf/src'
-
-# put all args on a new line for better diffs.
-NEWLINE = ' " +\n         "'
-
-# Compiler flags which are passed through to the blueprint.
-cflag_allowlist = [
-  # needed for zlib:zlib
-  "-mpclmul",
-  # needed for zlib:zlib
-  "-mssse3",
-  # needed for zlib:zlib
-  "-msse3",
-  # needed for zlib:zlib
-  "-msse4.2",
-  # flags to reduce binary size
-  "-O1",
-  "-O2",
-  "-O3",
-  "-Oz",
-  "-g1",
-  "-g2",
-  "-fdata-sections",
-  "-ffunction-sections",
-  "-fvisibility=hidden",
-  "-fvisibility-inlines-hidden",
-  "-fstack-protector",
-  "-mno-outline",
-  "-mno-outline-atomics",
-  "-fno-asynchronous-unwind-tables",
-  "-fno-unwind-tables",
-]
-
-# Linker flags which are passed through to the blueprint.
-ldflag_allowlist = [
-  # flags to reduce binary size
-  "-Wl,--as-needed",
-  "-Wl,--gc-sections",
-  "-Wl,--icf=all",
-]
-
-def get_linker_script_ldflag(script_path):
-  return f'-Wl,--script,{tree_path}/{script_path}'
-
-# Additional arguments to apply to Android.bp rules.
-additional_args = {
-    'cronet_aml_net_net': [
-        ('export_static_lib_headers', {
-            'cronet_aml_net_third_party_quiche_quiche',
-            'cronet_aml_crypto_crypto',
-        }),
-    ],
-    # TODO: fix upstream. Both //base:base and
-    # //base/allocator/partition_allocator:partition_alloc do not create a
-    # dependency on gtest despite using gtest_prod.h.
-    'cronet_aml_base_base': [
-        ('header_libs', {
-            'libgtest_prod_headers',
-        }),
-        ('export_header_lib_headers', {
-            'libgtest_prod_headers',
-        }),
-    ],
-    'cronet_aml_base_allocator_partition_allocator_partition_alloc': [
-        ('header_libs', {
-            'libgtest_prod_headers',
-        }),
-    ],
-}
-
-def enable_brotli(module, arch):
-  # Requires crrev/c/4111690
-  if arch is None:
-    module.static_libs.add('libbrotli')
-  else:
-    module.arch[arch].static_libs.add('libbrotli')
-
-def enable_modp_b64(module, arch):
-  # Requires crrev/c/4112845
-  # Requires aosp/2359455
-  # Requires aosp/2359456
-  if not module.is_compiled():
-    return
-  if arch is None:
-    module.static_libs.add('libmodpb64')
-  else:
-    module.arch[arch].static_libs.add('libmodpb64')
-
-def enable_zlib(module, arch):
-  # Requires crrev/c/4109079
-  if arch is None:
-    module.shared_libs.add('libz')
-  else:
-    module.arch[arch].shared_libs.add('libz')
-
-# Android equivalents for third-party libraries that the upstream project
-# depends on.
-builtin_deps = {
-    '//buildtools/third_party/libunwind:libunwind':
-        lambda m, a: None, # disable libunwind
-    '//buildtools/third_party/libunwind:libunwind__testing':
-        lambda m, a: None, # disable libunwind
-    '//net/data/ssl/chrome_root_store:gen_root_store_inc':
-        lambda m, a: None,
-    '//net/data/ssl/chrome_root_store:gen_root_store_inc__testing':
-        lambda m, a: None,
-    '//net/tools/root_store_tool:root_store_tool':
-        lambda m, a: None,
-    '//net/tools/root_store_tool:root_store_tool__testing':
-        lambda m, a: None,
-    '//third_party/zlib:zlib':
-        enable_zlib,
-    '//third_party/zlib:zlib__testing':
-        enable_zlib,
-}
-
-experimental_android_deps = {
-    '//third_party/brotli:common':
-        enable_brotli,
-    '//third_party/brotli:dec':
-        enable_brotli,
-    '//third_party/modp_b64:modp_b64':
-        enable_modp_b64,
-}
-
-# Uncomment the following lines to use Android deps rather than their Chromium
-# equivalent:
-#builtin_deps.update(experimental_android_deps)
-#local_include_dirs_denylist.extend(experimental_include_dirs_denylist)
-
-# Name of tethering apex module
-tethering_apex = "com.android.tethering"
-
-# Name of cronet api target
-java_api_target_name = "//components/cronet/android:cronet_api_java"
-
-# ----------------------------------------------------------------------------
-# End of configuration.
-# ----------------------------------------------------------------------------
-
-
-class Error(Exception):
-  pass
-
-
-class ThrowingArgumentParser(argparse.ArgumentParser):
-
-  def __init__(self, context):
-    super(ThrowingArgumentParser, self).__init__()
-    self.context = context
-
-  def error(self, message):
-    raise Error('%s: %s' % (self.context, message))
-
-
-def write_blueprint_key_value(output, name, value, sort=True):
-  """Writes a Blueprint key-value pair to the output"""
-
-  if isinstance(value, bool):
-    if value:
-      output.append('    %s: true,' % name)
-    else:
-      output.append('    %s: false,' % name)
-    return
-  if not value:
-    return
-  if isinstance(value, set):
-    value = sorted(value)
-  if isinstance(value, list):
-    output.append('    %s: [' % name)
-    for item in sorted(value) if sort else value:
-      output.append('        "%s",' % item)
-    output.append('    ],')
-    return
-  if isinstance(value, Target):
-    value.to_string(output)
-    return
-  if isinstance(value, dict):
-    kv_output = []
-    for k, v in value.items():
-      write_blueprint_key_value(kv_output, k, v)
-
-    output.append('    %s: {' % name)
-    for line in kv_output:
-      output.append('    %s' % line)
-    output.append('    },')
-    return
-  output.append('    %s: "%s",' % (name, value))
-
-
-class Target(object):
-  """A target-scoped part of a module"""
-
-  def __init__(self, name):
-    self.name = name
-    self.srcs = set()
-    self.shared_libs = set()
-    self.static_libs = set()
-    self.whole_static_libs = set()
-    self.header_libs = set()
-    self.cflags = set()
-    self.dist = dict()
-    self.strip = dict()
-    self.stl = None
-    self.cppflags = set()
-    self.local_include_dirs = set()
-    self.export_system_include_dirs = set()
-    self.generated_headers = set()
-    self.export_generated_headers = set()
-    self.ldflags = set()
-    self.compile_multilib = None
-    if name == 'host':
-      self.compile_multilib = '64'
-
-  def to_string(self, output):
-    nested_out = []
-    self._output_field(nested_out, 'srcs')
-    self._output_field(nested_out, 'shared_libs')
-    self._output_field(nested_out, 'static_libs')
-    self._output_field(nested_out, 'whole_static_libs')
-    self._output_field(nested_out, 'header_libs')
-    self._output_field(nested_out, 'cflags')
-    self._output_field(nested_out, 'stl')
-    self._output_field(nested_out, 'dist')
-    self._output_field(nested_out, 'strip')
-    self._output_field(nested_out, 'cppflags')
-    self._output_field(nested_out, 'local_include_dirs')
-    self._output_field(nested_out, 'export_system_include_dirs')
-    self._output_field(nested_out, 'generated_headers')
-    self._output_field(nested_out, 'export_generated_headers')
-    self._output_field(nested_out, 'ldflags')
-
-    if nested_out:
-      # This is added here to make sure it doesn't add a `host` arch-specific module just for
-      # `compile_multilib` flag.
-      self._output_field(nested_out, 'compile_multilib')
-      output.append('    %s: {' % self.name)
-      for line in nested_out:
-        output.append('    %s' % line)
-      output.append('    },')
-
-  def _output_field(self, output, name, sort=True):
-    value = getattr(self, name)
-    return write_blueprint_key_value(output, name, value, sort)
-
-
-class Module(object):
-  """A single module (e.g., cc_binary, cc_test) in a blueprint."""
-
-  def __init__(self, mod_type, name, gn_target):
-    self.type = mod_type
-    self.gn_target = gn_target
-    self.name = name
-    self.srcs = set()
-    self.comment = 'GN: ' + gn_target
-    self.shared_libs = set()
-    self.static_libs = set()
-    self.whole_static_libs = set()
-    self.runtime_libs = set()
-    self.tools = set()
-    self.cmd = None
-    self.host_supported = False
-    self.device_supported = True
-    self.vendor_available = False
-    self.init_rc = set()
-    self.out = set()
-    self.export_include_dirs = set()
-    self.generated_headers = set()
-    self.export_generated_headers = set()
-    self.export_static_lib_headers = set()
-    self.export_header_lib_headers = set()
-    self.defaults = set()
-    self.cflags = set()
-    self.include_dirs = set()
-    self.local_include_dirs = set()
-    self.header_libs = set()
-    self.required = set()
-    self.tool_files = set()
-    # target contains a dict of Targets indexed by os_arch.
-    # example: { 'android_x86': Target('android_x86')
-    self.target = dict()
-    self.target['android'] = Target('android')
-    self.target['android_x86'] = Target('android_x86')
-    self.target['android_x86_64'] = Target('android_x86_64')
-    self.target['android_arm'] = Target('android_arm')
-    self.target['android_arm64'] = Target('android_arm64')
-    self.target['host'] = Target('host')
-    self.stl = None
-    self.cpp_std = None
-    self.dist = dict()
-    self.strip = dict()
-    self.data = set()
-    self.apex_available = set()
-    self.min_sdk_version = None
-    self.proto = dict()
-    self.linker_scripts = set()
-    self.ldflags = set()
-    # The genrule_XXX below are properties that must to be propagated back
-    # on the module(s) that depend on the genrule.
-    self.genrule_headers = set()
-    self.genrule_srcs = set()
-    self.genrule_shared_libs = set()
-    self.genrule_header_libs = set()
-    self.version_script = None
-    self.test_suites = set()
-    self.test_config = None
-    self.stubs = {}
-    self.cppflags = set()
-    self.rtti = False
-    # Name of the output. Used for setting .so file name for libcronet
-    self.libs = set()
-    self.stem = None
-    self.compile_multilib = None
-    self.aidl = dict()
-    self.plugins = set()
-    self.processor_class = None
-    self.sdk_version = None
-    self.javacflags = set()
-    self.license_kinds = set()
-    self.license_text = set()
-    self.default_applicable_licenses = set()
-
-  def to_string(self, output):
-    if self.comment:
-      output.append('// %s' % self.comment)
-    output.append('%s {' % self.type)
-    self._output_field(output, 'name')
-    self._output_field(output, 'srcs')
-    self._output_field(output, 'shared_libs')
-    self._output_field(output, 'static_libs')
-    self._output_field(output, 'whole_static_libs')
-    self._output_field(output, 'runtime_libs')
-    self._output_field(output, 'tools')
-    self._output_field(output, 'cmd', sort=False)
-    if self.host_supported:
-      self._output_field(output, 'host_supported')
-    if not self.device_supported:
-      self._output_field(output, 'device_supported')
-    if self.vendor_available:
-      self._output_field(output, 'vendor_available')
-    self._output_field(output, 'init_rc')
-    self._output_field(output, 'out')
-    self._output_field(output, 'export_include_dirs')
-    self._output_field(output, 'generated_headers')
-    self._output_field(output, 'export_generated_headers')
-    self._output_field(output, 'export_static_lib_headers')
-    self._output_field(output, 'export_header_lib_headers')
-    self._output_field(output, 'defaults')
-    self._output_field(output, 'cflags')
-    self._output_field(output, 'include_dirs')
-    self._output_field(output, 'local_include_dirs')
-    self._output_field(output, 'header_libs')
-    self._output_field(output, 'required')
-    self._output_field(output, 'dist')
-    self._output_field(output, 'strip')
-    self._output_field(output, 'tool_files')
-    self._output_field(output, 'data')
-    self._output_field(output, 'stl')
-    self._output_field(output, 'cpp_std')
-    self._output_field(output, 'apex_available')
-    self._output_field(output, 'min_sdk_version')
-    self._output_field(output, 'version_script')
-    self._output_field(output, 'test_suites')
-    self._output_field(output, 'test_config')
-    self._output_field(output, 'stubs')
-    self._output_field(output, 'proto')
-    self._output_field(output, 'linker_scripts')
-    self._output_field(output, 'ldflags')
-    self._output_field(output, 'cppflags')
-    self._output_field(output, 'libs')
-    self._output_field(output, 'stem')
-    self._output_field(output, 'compile_multilib')
-    self._output_field(output, 'aidl')
-    self._output_field(output, 'plugins')
-    self._output_field(output, 'processor_class')
-    self._output_field(output, 'sdk_version')
-    self._output_field(output, 'javacflags')
-    self._output_field(output, 'license_kinds')
-    self._output_field(output, 'license_text')
-    self._output_field(output, 'default_applicable_licenses')
-    if self.rtti:
-      self._output_field(output, 'rtti')
-
-    target_out = []
-    for arch, target in sorted(self.target.items()):
-      # _output_field calls getattr(self, arch).
-      setattr(self, arch, target)
-      self._output_field(target_out, arch)
-
-    if target_out:
-      output.append('    target: {')
-      for line in target_out:
-        output.append('    %s' % line)
-      output.append('    },')
-
-    output.append('}')
-    output.append('')
-
-  def add_android_static_lib(self, lib):
-    if self.type == 'cc_binary_host':
-      raise Exception('Adding Android static lib for host tool is unsupported')
-    elif self.host_supported:
-      self.target['android'].static_libs.add(lib)
-    else:
-      self.static_libs.add(lib)
-
-  def add_android_shared_lib(self, lib):
-    if self.type == 'cc_binary_host':
-      raise Exception('Adding Android shared lib for host tool is unsupported')
-    elif self.host_supported:
-      self.target['android'].shared_libs.add(lib)
-    else:
-      self.shared_libs.add(lib)
-
-  def is_test(self):
-    if gn_utils.TESTING_SUFFIX in self.name:
-      name_without_prefix = self.name[:self.name.find(gn_utils.TESTING_SUFFIX)]
-      return any([name_without_prefix == label_to_module_name(target) for target in DEFAULT_TESTS])
-    return False
-
-  def _output_field(self, output, name, sort=True):
-    value = getattr(self, name)
-    return write_blueprint_key_value(output, name, value, sort)
-
-  def is_compiled(self):
-    return self.type not in ('cc_genrule', 'filegroup', 'java_genrule')
-
-  def is_genrule(self):
-    return self.type == "cc_genrule"
-
-  def has_input_files(self):
-    if len(self.srcs) > 0:
-      return True
-    if any([len(target.srcs) > 0 for target in self.target.values()]):
-      return True
-    # Allow cc_static_library with export_generated_headers as those are crucial for
-    # the depending modules
-    return len(self.export_generated_headers) > 0
-
-  def merge_attribute(self, key, source_module, allowed_archs, source_key = None):
-    """
-    Merges the value of the attribute `source_key` for the `dep_module` with
-    the value of the attribute `key` for this module. If the value of the
-    `source_key` is equal to None. Then `key` is used for both modules.
-
-    This merges the attribute for both non-arch and archs
-    specified in `allowed_archs`.
-    :param key: The attribute used for merging in the calling module. Also
-    used for `dep_module` if the `source_key` is None.
-    :param source_module: The module where data is propagated from.
-    :param allowed_archs: A list of archs to merge the attribute on.
-    :param source_key: if the attribute merged from the `dep_module`
-    is different from the `key`
-    """
-    if not source_key:
-      source_key = key
-    self.__dict__[key].update(source_module.__dict__[source_key])
-    for arch_name in source_module.target.keys():
-      if arch_name in allowed_archs:
-        self.target[arch_name].__dict__[key].update(
-            source_module.target[arch_name].__dict__[source_key])
-
-class Blueprint(object):
-  """In-memory representation of an Android.bp file."""
-
-  def __init__(self):
-    self.modules = {}
-
-  def add_module(self, module):
-    """Adds a new module to the blueprint, replacing any existing module
-        with the same name.
-
-        Args:
-            module: Module instance.
-        """
-    self.modules[module.name] = module
-
-  def to_string(self, output):
-    for m in sorted(self.modules.values(), key=lambda m: m.name):
-      if m.type != "cc_library_static" or m.has_input_files():
-        # Don't print cc_library_static with empty srcs. These attributes are already
-        # propagated up the tree. Printing them messes the presubmits because
-        # every module is compiled while those targets are not reachable in
-        # a normal compilation path.
-        m.to_string(output)
-
-
-def label_to_module_name(label):
-  """Turn a GN label (e.g., //:perfetto_tests) into a module name."""
-  module = re.sub(r'^//:?', '', label)
-  module = re.sub(r'[^a-zA-Z0-9_]', '_', module)
-
-  if not module.startswith(module_prefix):
-    return module_prefix + module
-  return module
-
-
-def is_supported_source_file(name):
-  """Returns True if |name| can appear in a 'srcs' list."""
-  return os.path.splitext(name)[1] in ['.c', '.cc', '.cpp', '.java', '.proto', '.S']
-
-
-def create_proto_modules(blueprint, gn, target):
-  """Generate genrules for a proto GN target.
-
-    GN actions are used to dynamically generate files during the build. The
-    Soong equivalent is a genrule. This function turns a specific kind of
-    genrule which turns .proto files into source and header files into a pair
-    equivalent genrules.
-
-    Args:
-        blueprint: Blueprint instance which is being generated.
-        target: gn_utils.Target object.
-
-    Returns:
-        The source_genrule module.
-    """
-  assert (target.type == 'proto_library')
-
-  protoc_gn_target_name = gn.get_target('//third_party/protobuf:protoc').name
-  protoc_module_name = label_to_module_name(protoc_gn_target_name)
-  tools = {protoc_module_name}
-  cpp_out_dir = '$(genDir)/%s/%s/' % (tree_path, target.proto_in_dir)
-  target_module_name = label_to_module_name(target.name)
-
-  # In GN builds the proto path is always relative to the output directory
-  # (out/tmp.xxx).
-  cmd = ['$(location %s)' % protoc_module_name]
-  cmd += ['--proto_path=%s/%s' % (tree_path, target.proto_in_dir)]
-
-  if buildtools_protobuf_src in target.proto_paths:
-    cmd += ['--proto_path=%s' % android_protobuf_src]
-
-  # We don't generate any targets for source_set proto modules because
-  # they will be inlined into other modules if required.
-  if target.proto_plugin == 'source_set':
-    return None
-
-  # Descriptor targets only generate a single target.
-  if target.proto_plugin == 'descriptor':
-    out = '{}.bin'.format(target_module_name)
-
-    cmd += ['--descriptor_set_out=$(out)']
-    cmd += ['$(in)']
-
-    descriptor_module = Module('cc_genrule', target_module_name, target.name)
-    descriptor_module.cmd = ' '.join(cmd)
-    descriptor_module.out = [out]
-    descriptor_module.tools = tools
-    blueprint.add_module(descriptor_module)
-
-    # Recursively extract the .proto files of all the dependencies and
-    # add them to srcs.
-    descriptor_module.srcs.update(
-        gn_utils.label_to_path(src) for src in target.sources)
-    for dep in target.transitive_proto_deps:
-      current_target = gn.get_target(dep)
-      descriptor_module.srcs.update(
-          gn_utils.label_to_path(src) for src in current_target.sources)
-
-    return descriptor_module
-
-  # We create two genrules for each proto target: one for the headers and
-  # another for the sources. This is because the module that depends on the
-  # generated files needs to declare two different types of dependencies --
-  # source files in 'srcs' and headers in 'generated_headers' -- and it's not
-  # valid to generate .h files from a source dependency and vice versa.
-  source_module_name = target_module_name + '_gen'
-  source_module = Module('cc_genrule', source_module_name, target.name)
-  blueprint.add_module(source_module)
-  source_module.srcs.update(
-      gn_utils.label_to_path(src) for src in target.sources)
-
-  header_module = Module('cc_genrule', source_module_name + '_headers',
-                         target.name)
-  blueprint.add_module(header_module)
-  header_module.srcs = set(source_module.srcs)
-
-  # TODO(primiano): at some point we should remove this. This was introduced
-  # by aosp/1108421 when adding "protos/" to .proto include paths, in order to
-  # avoid doing multi-repo changes and allow old clients in the android tree
-  # to still do the old #include "perfetto/..." rather than
-  # #include "protos/perfetto/...".
-  header_module.export_include_dirs = {'.', 'protos'}
-  # Since the .cc file and .h get created by a different gerule target, they
-  # are not put in the same intermediate path, so local includes do not work
-  # without explictily exporting the include dir.
-  header_module.export_include_dirs.add(target.proto_in_dir)
-
-  # This function does not return header_module so setting apex_available attribute here.
-  header_module.apex_available.add(tethering_apex)
-
-  source_module.genrule_srcs.add(':' + source_module.name)
-  source_module.genrule_headers.add(header_module.name)
-
-  if target.proto_plugin == 'proto':
-    suffixes = ['pb']
-    source_module.genrule_shared_libs.add('libprotobuf-cpp-lite')
-    cmd += ['--cpp_out=lite=true:' + cpp_out_dir]
-  elif target.proto_plugin == 'protozero':
-    suffixes = ['pbzero']
-    plugin = create_modules_from_target(blueprint, gn, protozero_plugin)
-    tools.add(plugin.name)
-    cmd += ['--plugin=protoc-gen-plugin=$(location %s)' % plugin.name]
-    cmd += ['--plugin_out=wrapper_namespace=pbzero:' + cpp_out_dir]
-  elif target.proto_plugin == 'cppgen':
-    suffixes = ['gen']
-    plugin = create_modules_from_target(blueprint, gn, cppgen_plugin)
-    tools.add(plugin.name)
-    cmd += ['--plugin=protoc-gen-plugin=$(location %s)' % plugin.name]
-    cmd += ['--plugin_out=wrapper_namespace=gen:' + cpp_out_dir]
-  elif target.proto_plugin == 'ipc':
-    suffixes = ['ipc']
-    plugin = create_modules_from_target(blueprint, gn, ipc_plugin)
-    tools.add(plugin.name)
-    cmd += ['--plugin=protoc-gen-plugin=$(location %s)' % plugin.name]
-    cmd += ['--plugin_out=wrapper_namespace=gen:' + cpp_out_dir]
-  else:
-    raise Error('Unsupported proto plugin: %s' % target.proto_plugin)
-
-  cmd += ['$(in)']
-  source_module.cmd = ' '.join(cmd)
-  header_module.cmd = source_module.cmd
-  source_module.tools = tools
-  header_module.tools = tools
-
-  for sfx in suffixes:
-    source_module.out.update('%s/%s' %
-                             (tree_path, src.replace('.proto', '.%s.cc' % sfx))
-                             for src in source_module.srcs)
-    header_module.out.update('%s/%s' %
-                             (tree_path, src.replace('.proto', '.%s.h' % sfx))
-                             for src in header_module.srcs)
-  return source_module
-
-
-def create_proto_group_modules(blueprint, gn, module_name, target_names):
-  # TODO(lalitm): today, we're only adding a Java lite module because that's
-  # the only one used in practice. In the future, if we need other target types
-  # (e.g. C++, Java full etc.) add them here.
-  bp_module_name = label_to_module_name(module_name) + '_java_protos'
-  module = Module('java_library', bp_module_name, bp_module_name)
-  module.comment = f'''GN: [{', '.join(target_names)}]'''
-  module.proto = {'type': 'lite', 'canonical_path_from_root': False}
-
-  for name in target_names:
-    target = gn.get_target(name)
-    module.srcs.update(gn_utils.label_to_path(src) for src in target.sources)
-    for dep_label in target.transitive_proto_deps:
-      dep = gn.get_target(dep_label)
-      module.srcs.update(gn_utils.label_to_path(src) for src in dep.sources)
-
-  blueprint.add_module(module)
-
-def create_gcc_preprocess_modules(blueprint, target):
-  # gcc_preprocess.py internally execute host gcc which is not allowed in genrule.
-  # So, this function create multiple modules and realize equivalent processing
-  # TODO: Consider to support gcc_preprocess.py in different way
-  # It's not great to have genrule and cc_object in the dependency from java_library
-  assert (len(target.sources) == 1)
-  source = list(target.sources)[0]
-  assert (Path(source).suffix == '.template')
-  stem = Path(source).stem
-
-  bp_module_name = label_to_module_name(target.name)
-
-  # Rename .template to .cc since cc_object does not accept .template file as srcs
-  rename_module = Module('genrule', bp_module_name + '_rename', target.name)
-  rename_module.srcs.add(gn_utils.label_to_path(source))
-  rename_module.out.add(stem + '.cc')
-  rename_module.cmd = 'cp $(in) $(out)'
-  blueprint.add_module(rename_module)
-
-  # Preprocess template file and generates java file
-  preprocess_module = Module('cc_object', bp_module_name + '_preprocess', target.name)
-  # -E: stop after preprocessing.
-  # -P: disable line markers, i.e. '#line 309'
-  preprocess_module.cflags.update(['-E', '-P', '-DANDROID'])
-  preprocess_module.srcs.add(':' + rename_module.name)
-  defines = ['-D' + target.args[i+1] for i, arg in enumerate(target.args) if arg == '--define']
-  preprocess_module.cflags.update(defines)
-  # HACK: Specifying compile_multilib to build cc_object only once.
-  # Without this, soong complain to genrule that depends on cc_object when built for 64bit target.
-  # It seems this is because cc object is a module with per-architecture variants and genrule is a
-  # module with default variant. For 64bit target, cc_object is built multiple times for 32/64bit
-  # modes and genrule doesn't know which one to depend on.
-  preprocess_module.compile_multilib = 'first'
-  blueprint.add_module(preprocess_module)
-
-  # Generates srcjar using soong_zip
-  module = Module('genrule', bp_module_name, target.name)
-  module.srcs.add(':' + preprocess_module.name)
-  module.out.add(stem + '.srcjar')
-  module.cmd = NEWLINE.join([
-    f'cp $(in) $(genDir)/{stem}.java &&',
-    f'$(location soong_zip) -o $(out) -srcjar -C $(genDir) -f $(genDir)/{stem}.java'
-  ])
-  module.tools.add('soong_zip')
-  blueprint.add_module(module)
-  return module
-
-
-class BaseActionSanitizer():
-  def __init__(self, target, arch):
-    # Just to be on the safe side, create a deep-copy.
-    self.target = copy.deepcopy(target)
-    if arch:
-      # Merge arch specific attributes
-      self.target.sources |= arch.sources
-      self.target.inputs |= arch.inputs
-      self.target.outputs |= arch.outputs
-      self.target.script = self.target.script or arch.script
-      self.target.args = self.target.args or arch.args
-      self.target.response_file_contents = \
-        self.target.response_file_contents or arch.response_file_contents
-    self.target.args = self._normalize_args()
-
-  def get_name(self):
-    return label_to_module_name(self.target.name)
-
-  def _normalize_args(self):
-    # Convert ['--param=value'] to ['--param', 'value'] for consistency.
-    # Escape quotations.
-    normalized_args = []
-    for arg in self.target.args:
-      arg = arg.replace('"', r'\"')
-      if arg.startswith('-'):
-        normalized_args.extend(arg.split('='))
-      else:
-        normalized_args.append(arg)
-    return normalized_args
-
-  # There are three types of args:
-  # - flags (--flag)
-  # - value args (--arg value)
-  # - list args (--arg value1 --arg value2)
-  # value args have exactly one arg value pair and list args have one or more arg value pairs.
-  # Note that the set of list args contains the set of value args.
-  # This is because list and value args are identical when the list args has only one arg value pair
-  # Some functions provide special implementations for each type, while others
-  # work on all of them.
-  def _has_arg(self, arg):
-    return arg in self.target.args
-
-  def _get_arg_indices(self, target_arg):
-    return [i for i, arg in enumerate(self.target.args) if arg == target_arg]
-
-  # Whether an arg value pair appears once or more times
-  def _is_list_arg(self, arg):
-    indices = self._get_arg_indices(arg)
-    return len(indices) > 0 and all([not self.target.args[i + 1].startswith('--') for i in indices])
-
-  def _update_list_arg(self, arg, func, throw_if_absent = True):
-    if self._should_fail_silently(arg, throw_if_absent):
-      return
-    assert(self._is_list_arg(arg))
-    indices = self._get_arg_indices(arg)
-    for i in indices:
-      self._set_arg_at(i + 1, func(self.target.args[i + 1]))
-
-  # Whether an arg value pair appears exactly once
-  def _is_value_arg(self, arg):
-    return operator.countOf(self.target.args, arg) == 1 and self._is_list_arg(arg)
-
-  def _get_value_arg(self, arg):
-    assert(self._is_value_arg(arg))
-    i = self.target.args.index(arg)
-    return self.target.args[i + 1]
-
-  # used to check whether a function call should cause an error when an arg is
-  # missing.
-  def _should_fail_silently(self, arg, throw_if_absent):
-    return not throw_if_absent and not self._has_arg(arg)
-
-  def _set_value_arg(self, arg, value, throw_if_absent = True):
-    if self._should_fail_silently(arg, throw_if_absent):
-      return
-    assert(self._is_value_arg(arg))
-    i = self.target.args.index(arg)
-    self.target.args[i + 1] = value
-
-  def _update_value_arg(self, arg, func, throw_if_absent = True):
-    if self._should_fail_silently(arg, throw_if_absent):
-      return
-    self._set_value_arg(arg, func(self._get_value_arg(arg)))
-
-  def _set_arg_at(self, position, value):
-    self.target.args[position] = value
-
-  def _delete_value_arg(self, arg, throw_if_absent = True):
-    if self._should_fail_silently(arg, throw_if_absent):
-      return
-    assert(self._is_value_arg(arg))
-    i = self.target.args.index(arg)
-    self.target.args.pop(i)
-    self.target.args.pop(i)
-
-  def _append_arg(self, arg, value):
-    self.target.args.append(arg)
-    self.target.args.append(value)
-
-  def _sanitize_filepath_with_location_tag(self, arg):
-    if arg.startswith('../../'):
-      arg = self._sanitize_filepath(arg)
-      arg = self._add_location_tag(arg)
-    return arg
-
-  # wrap filename in location tag.
-  def _add_location_tag(self, filename):
-    return '$(location %s)' % filename
-
-  # applies common directory transformation that *should* be universally applicable.
-  # TODO: verify if it actually *is* universally applicable.
-  def _sanitize_filepath(self, filepath):
-    # Careful, order matters!
-    # delete all leading ../
-    filepath = re.sub('^(\.\./)+', '', filepath)
-    filepath = re.sub('^gen/jni_headers', '$(genDir)', filepath)
-    filepath = re.sub('^gen', '$(genDir)', filepath)
-    return filepath
-
-  # Iterate through all the args and apply function
-  def _update_all_args(self, func):
-    self.target.args = [func(arg) for arg in self.target.args]
-
-  def get_cmd(self):
-    arg_string = NEWLINE.join(self.target.args)
-    cmd = '$(location %s) %s' % (
-    gn_utils.label_to_path(self.target.script), arg_string)
-
-    if self.use_response_file:
-      # Pipe response file contents into script
-      cmd = 'echo \'%s\' |%s%s' % (self.target.response_file_contents, NEWLINE, cmd)
-    return cmd
-
-  def get_outputs(self):
-    return self.target.outputs
-
-  def get_srcs(self):
-    # gn treats inputs and sources for actions equally.
-    # soong only supports source files inside srcs, non-source files are added as
-    # tool_files dependency.
-    files = self.target.sources.union(self.target.inputs)
-    return {gn_utils.label_to_path(file) for file in files if is_supported_source_file(file)}
-
-  def get_tools(self):
-    return set()
-
-  def get_tool_files(self):
-    # gn treats inputs and sources for actions equally.
-    # soong only supports source files inside srcs, non-source files are added as
-    # tool_files dependency.
-    files = self.target.sources.union(self.target.inputs)
-    tool_files = {gn_utils.label_to_path(file)
-                  for file in files if not is_supported_source_file(file)}
-    tool_files.add(gn_utils.label_to_path(self.target.script))
-    return tool_files
-
-  def _sanitize_args(self):
-    # Handle passing parameters via response file by piping them into the script
-    # and reading them from /dev/stdin.
-
-    self.use_response_file = gn_utils.RESPONSE_FILE in self.target.args
-    if self.use_response_file:
-      # Replace {{response_file_contents}} with /dev/stdin
-      self.target.args = ['/dev/stdin' if it == gn_utils.RESPONSE_FILE else it
-                          for it in self.target.args]
-
-  def _sanitize_outputs(self):
-    pass
-
-  def _sanitize_inputs(self):
-    pass
-
-  def sanitize(self):
-    self._sanitize_args()
-    self._sanitize_outputs()
-    self._sanitize_inputs()
-
-  # Whether this target generates header files
-  def is_header_generated(self):
-    return any(os.path.splitext(it)[1] == '.h' for it in self.target.outputs)
-
-class WriteBuildDateHeaderSanitizer(BaseActionSanitizer):
-  def _sanitize_args(self):
-    self._set_arg_at(0, '$(out)')
-    super()._sanitize_args()
-
-class WriteBuildFlagHeaderSanitizer(BaseActionSanitizer):
-  def _sanitize_args(self):
-    self._set_value_arg('--gen-dir', '.')
-    self._set_value_arg('--output', '$(out)')
-    super()._sanitize_args()
-
-class GnRunBinary(BaseActionSanitizer):
-  def __init__(self, target, arch):
-    super().__init__(target, arch)
-    self.binary_to_target = {
-      "clang_x64/transport_security_state_generator":
-            "cronet_aml_net_tools_transport_security_state_generator_transport_security_state_generator__testing",
-    }
-    self.binary = self.binary_to_target[self.target.args[0]]
-
-  def _replace_gen_with_location_tag(self, arg):
-    if arg.startswith("gen/"):
-      return "$(location %s)" % arg.replace("gen/", "")
-    return arg
-
-  def _sanitize_args(self):
-    self._update_all_args(self._sanitize_filepath_with_location_tag)
-    self._update_all_args(self._replace_gen_with_location_tag)
-    self._set_arg_at(0, '$(location %s)' % self.binary)
-    super()._sanitize_args()
-
-  def get_tools(self):
-    tools = super().get_tools()
-    tools.add(self.binary)
-    return tools
-
-  def get_cmd(self):
-    # Remove the script and use the binary right away
-    return NEWLINE.join(self.target.args)
-
-class JniGeneratorSanitizer(BaseActionSanitizer):
-  def __init__(self, target, arch, is_test_target):
-    self.is_test_target = is_test_target
-    super().__init__(target, arch)
-
-  def _add_location_tag_to_filepath(self, arg):
-    if not arg.endswith('.class'):
-      # --input_file supports both .class specifiers or source files as arguments.
-      # Only source files need to be wrapped inside a $(location <label>) tag.
-      arg = self._add_location_tag(arg)
-    return arg
-
-  def _sanitize_args(self):
-    self._set_value_arg('--jar_file', '$(location :current_android_jar)', False)
-    if self._has_arg('--jar_file'):
-      self._append_arg('--javap', '$$(find $${OUT_DIR:-out}/.path -name javap)')
-    self._update_value_arg('--output_dir', self._sanitize_filepath)
-    self._update_value_arg('--includes', self._sanitize_filepath, False)
-    self._delete_value_arg('--prev_output_dir', False)
-    self._update_list_arg('--input_file', self._sanitize_filepath)
-    self._update_list_arg('--input_file', self._add_location_tag_to_filepath)
-    if not self.is_test_target:
-      # Only jarjar platform code
-      self._append_arg('--package_prefix', 'android.net.http.internal')
-    super()._sanitize_args()
-
-  def _sanitize_outputs(self):
-    # fix target.output directory to match #include statements.
-    self.target.outputs = {re.sub('^jni_headers/', '', out) for out in self.target.outputs}
-    super()._sanitize_outputs()
-
-  def get_tool_files(self):
-    tool_files = super().get_tool_files()
-    # android_jar.classes should be part of the tools as it list implicit classes
-    # for the script to generate JNI headers.
-    tool_files.add("base/android/jni_generator/android_jar.classes")
-
-    # Filter android.jar and add :current_android_jar
-    tool_files = {file if not file.endswith('android.jar') else ':current_android_jar'
-                  for file in tool_files }
-    return tool_files
-
-class JniRegistrationGeneratorSanitizer(BaseActionSanitizer):
-  def __init__(self, target, arch, is_test_target):
-    self.is_test_target = is_test_target
-    super().__init__(target, arch)
-
-  def _sanitize_inputs(self):
-    self.target.inputs = [file for file in self.target.inputs if not file.startswith('//out/')]
-
-  def _sanitize_args(self):
-    self._update_value_arg('--depfile', self._sanitize_filepath)
-    self._update_value_arg('--srcjar-path', self._sanitize_filepath)
-    self._update_value_arg('--header-path', self._sanitize_filepath)
-    self._set_value_arg('--sources-files', '$(genDir)/java.sources')
-    # update_jni_registration_module removes them from the srcs of the module
-    # It might be better to remove sources by '--sources-exclusions'
-    self._delete_value_arg('--sources-exclusions')
-    if not self.is_test_target:
-      # Only jarjar platform code
-      self._append_arg('--package_prefix', 'android.net.http.internal')
-    super()._sanitize_args()
-
-  def get_cmd(self):
-    # jni_registration_generator.py doesn't work with python2
-    cmd = "python3 " + super().get_cmd()
-    # Path in the original sources file does not work in genrule.
-    # So creating sources file in cmd based on the srcs of this target.
-    # Adding ../$(current_dir)/ to the head because jni_registration_generator.py uses the files
-    # whose path startswith(..)
-    commands = ["current_dir=`basename \\\`pwd\\\``;",
-                "for f in $(in);",
-                "do",
-                "echo \\\"../$$current_dir/$$f\\\" >> $(genDir)/java.sources;",
-                "done;",
-                cmd]
-
-    # .h file jni_registration_generator.py generates has #define with directory name.
-    # With the genrule env that contains "." which is invalid. So replace that at the end of cmd.
-    commands.append(";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' ")
-    commands.append("$(genDir)/components/cronet/android/cronet_jni_registration.h")
-    return NEWLINE.join(commands)
-
-class JavaJniRegistrationGeneratorSanitizer(JniRegistrationGeneratorSanitizer):
-  def get_name(self):
-    name = super().get_name() + "__java"
-    if self.is_test_target:
-      name += gn_utils.TESTING_SUFFIX
-    return name
-
-  def _sanitize_outputs(self):
-    self.target.outputs = [out for out in self.target.outputs if
-                           out.endswith(".srcjar")]
-    super()._sanitize_outputs()
-
-class VersionSanitizer(BaseActionSanitizer):
-  def _sanitize_args(self):
-    self._set_value_arg('-o', '$(out)')
-    # args for the version.py contain file path without leading --arg key. So apply sanitize
-    # function for all the args.
-    self._update_all_args(self._sanitize_filepath_with_location_tag)
-    self._set_value_arg('-e', "'%s'" % self._get_value_arg('-e'))
-    super()._sanitize_args()
-
-  def get_tool_files(self):
-    tool_files = super().get_tool_files()
-    # android_chrome_version.py is not specified in anywhere but version.py imports this file
-    tool_files.add('build/util/android_chrome_version.py')
-    return tool_files
-
-class JavaCppEnumSanitizer(BaseActionSanitizer):
-  def _sanitize_args(self):
-    self._update_all_args(self._sanitize_filepath_with_location_tag)
-    self._set_value_arg('--srcjar', '$(out)')
-    super()._sanitize_args()
-
-class MakeDafsaSanitizer(BaseActionSanitizer):
-  def is_header_generated(self):
-    # This script generates .cc files but they are #included by other sources
-    # (e.g. registry_controlled_domain.cc)
-    return True
-
-class JavaCppFeatureSanitizer(BaseActionSanitizer):
-  def _sanitize_args(self):
-    self._update_all_args(self._sanitize_filepath_with_location_tag)
-    self._set_value_arg('--srcjar', '$(out)')
-    super()._sanitize_args()
-
-class JavaCppStringSanitizer(BaseActionSanitizer):
-  def _sanitize_args(self):
-    self._update_all_args(self._sanitize_filepath_with_location_tag)
-    self._set_value_arg('--srcjar', '$(out)')
-    super()._sanitize_args()
-
-class WriteNativeLibrariesJavaSanitizer(BaseActionSanitizer):
-  def _sanitize_args(self):
-    self._set_value_arg('--output', '$(out)')
-    super()._sanitize_args()
-
-def get_action_sanitizer(target, type, arch, is_test_target):
-  if target.script == "//build/write_buildflag_header.py":
-    return WriteBuildFlagHeaderSanitizer(target, arch)
-  elif target.script == "//build/write_build_date_header.py":
-    return WriteBuildDateHeaderSanitizer(target, arch)
-  elif target.script == '//base/android/jni_generator/jni_generator.py':
-    return JniGeneratorSanitizer(target, arch, is_test_target)
-  elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
-    if type == 'java_genrule':
-      return JavaJniRegistrationGeneratorSanitizer(target, arch, is_test_target)
-    else:
-      return JniRegistrationGeneratorSanitizer(target, arch, is_test_target)
-  elif target.script == "//build/util/version.py":
-    return VersionSanitizer(target, arch)
-  elif target.script == "//build/android/gyp/java_cpp_enum.py":
-    return JavaCppEnumSanitizer(target, arch)
-  elif target.script == "//net/tools/dafsa/make_dafsa.py":
-    return MakeDafsaSanitizer(target, arch)
-  elif target.script == '//build/android/gyp/java_cpp_features.py':
-    return JavaCppFeatureSanitizer(target, arch)
-  elif target.script == '//build/android/gyp/java_cpp_strings.py':
-    return JavaCppStringSanitizer(target, arch)
-  elif target.script == '//build/android/gyp/write_native_libraries_java.py':
-    return WriteNativeLibrariesJavaSanitizer(target, arch)
-  elif target.script == '//build/gn_run_binary.py':
-    return GnRunBinary(target, arch)
-  else:
-    # TODO: throw exception here once all script hacks have been converted.
-    return BaseActionSanitizer(target, arch)
-
-def create_action_foreach_modules(blueprint, target, is_test_target):
-  """ The following assumes that rebase_path exists in the args.
-  The args of an action_foreach contains hints about which output files are generated
-  by which source files.
-  This is copied directly from the args
-  "gen/net/base/registry_controlled_domains/{{source_name_part}}-reversed-inc.cc"
-  So each source file will generate an output whose name is the {source_name-reversed-inc.cc}
-  """
-  new_args = []
-  for i, src in enumerate(sorted(target.sources)):
-    # don't add script arg for the first source -- create_action_module
-    # already does this.
-    if i != 0:
-      new_args.append('&& python3 $(location %s)' %
-                   gn_utils.label_to_path(target.script))
-    for arg in target.args:
-      if '{{source}}' in arg:
-        new_args.append('$(location %s)' % (gn_utils.label_to_path(src)))
-      elif '{{source_name_part}}' in arg:
-        source_name_part = src.split("/")[-1] # Get the file name only
-        source_name_part = source_name_part.split(".")[0] # Remove the extension (Ex: .cc)
-        file_name = arg.replace('{{source_name_part}}', source_name_part).split("/")[-1]
-        # file_name represent the output file name. But we need the whole path
-        # This can be found from target.outputs.
-        for out in target.outputs:
-          if out.endswith(file_name):
-            new_args.append('$(location %s)' % out)
-      else:
-        new_args.append(arg)
-
-  target.args = new_args
-  return create_action_module(blueprint, target, 'cc_genrule', is_test_target)
-
-def create_action_module_internal(target, type, is_test_target, arch=None):
-  sanitizer = get_action_sanitizer(target, type, arch, is_test_target)
-  sanitizer.sanitize()
-
-  module = Module(type, sanitizer.get_name(), target.name)
-  module.cmd = sanitizer.get_cmd()
-  module.out = sanitizer.get_outputs()
-  if sanitizer.is_header_generated():
-    module.genrule_headers.add(module.name)
-  module.srcs = sanitizer.get_srcs()
-  module.tool_files = sanitizer.get_tool_files()
-  module.tools = sanitizer.get_tools()
-
-  return module
-
-def get_cmd_condition(arch):
-  '''
-  :param arch: archtecture name e.g. android_x86_64, android_arm64
-  :return: condition that can be used in cc_genrule cmd to switch the behavior based on arch
-  '''
-  if arch == "android_x86_64":
-    return "( $$CC_ARCH == 'x86_64' && $$CC_OS == 'android' )"
-  elif arch == "android_x86":
-    return "( $$CC_ARCH == 'x86' && $$CC_OS == 'android' )"
-  elif arch == "android_arm":
-    return "( $$CC_ARCH == 'arm' && $$CC_OS == 'android' )"
-  elif arch == "android_arm64":
-    return "( $$CC_ARCH == 'arm64' && $$CC_OS == 'android' )"
-  elif arch == "host":
-    return "$$CC_OS != 'android'"
-  else:
-    raise Error(f'Unknown architecture type {arch}')
-
-def merge_cmd(modules, genrule_type):
-  '''
-  :param modules: dictionary whose key is arch name and value is module
-  :param genrule_type: cc_genrule or java_genrule
-  :return: merged command or common command if all the archs have the same command.
-  '''
-  commands = list({module.cmd for module in modules.values()})
-  if len(commands) == 1:
-    # If all the archs have the same command, return the command
-    return commands[0]
-
-  if genrule_type != 'cc_genrule':
-    raise Error(f'{genrule_type} can not have different cmd between archs')
-
-  merged_cmd = []
-  for arch, module in modules.items():
-    merged_cmd.append(f'if [[ {get_cmd_condition(arch)} ]];')
-    merged_cmd.append('then')
-    merged_cmd.append(module.cmd + ';')
-    merged_cmd.append('fi;')
-  return NEWLINE.join(merged_cmd)
-
-def merge_modules(modules, genrule_type):
-  '''
-  :param modules: dictionary whose key is arch name and value is module
-  :param genrule_type: cc_genrule or java_genrule
-  :return: merged module of input modules
-  '''
-  merged_module = list(modules.values())[0]
-
-  # Following attributes must be the same between archs
-  for key in ('out', 'genrule_headers', 'srcs', 'tool_files'):
-    if any([getattr(merged_module, key) != getattr(module, key) for module in modules.values()]):
-      raise Error(f'{merged_module.name} has different values for {key} between archs')
-
-  merged_module.cmd = merge_cmd(modules, genrule_type)
-  return merged_module
-
-def create_action_module(blueprint, target, genrule_type, is_test_target):
-  '''
-  Create module for action target and add to the blueprint. If target has arch specific attributes
-  this function merge them and create a single module.
-  :param blueprint:
-  :param target: target which is converted to the module.
-  :param genrule_type: cc_genrule or java_genrule
-  :return: created module
-  '''
-  # TODO: Handle this target correctly, this target generates java_genrule but this target has
-  # different value for cpu-family arg between archs
-  if target.name in ['//build/android:native_libraries_gen',
-                     '//build/android:native_libraries_gen__testing']:
-    module = create_action_module_internal(target, genrule_type, is_test_target, target.arch['android_arm'])
-    blueprint.add_module(module)
-    return module
-
-  modules = {arch_name: create_action_module_internal(target, genrule_type, is_test_target, arch)
-             for arch_name, arch in target.arch.items()}
-  module = merge_modules(modules, genrule_type)
-  blueprint.add_module(module)
-  return module
-
-
-def _get_cflags(cflags, defines):
-  cflags = {flag for flag in cflags if flag in cflag_allowlist}
-  # Consider proper allowlist or denylist if needed
-  cflags |= set("-D%s" % define.replace("\"", "\\\"") for define in defines)
-  return cflags
-
-def _set_linker_script(module, libs):
-  for lib in libs:
-    if lib.endswith(".lds"):
-      module.ldflags.add(get_linker_script_ldflag(gn_utils.label_to_path(lib)))
-
-def set_module_flags(module, module_type, cflags, defines, ldflags, libs):
-  module.cflags.update(_get_cflags(cflags, defines))
-  module.ldflags.update({flag for flag in ldflags
-                         if flag in ldflag_allowlist or flag.startswith("-Wl,-wrap,")})
-  _set_linker_script(module, libs)
-  # TODO: implement proper cflag parsing.
-  for flag in cflags:
-    if '-std=' in flag:
-      module.cpp_std = flag[len('-std='):]
-    if '-fexceptions' in flag:
-      module.cppflags.add('-fexceptions')
-
-def set_module_include_dirs(module, cflags, include_dirs):
-  for flag in cflags:
-    if '-isystem' in flag:
-      module.local_include_dirs.add(flag[len('-isystem../../'):])
-
-  # Adding local_include_dirs is necessary due to source_sets / filegroups
-  # which do not properly propagate include directories.
-  # Filter any directory inside //out as a) this directory does not exist for
-  # aosp / soong builds and b) the include directory should already be
-  # configured via library dependency.
-  module.local_include_dirs.update([gn_utils.label_to_path(d)
-                                 for d in include_dirs if not d.startswith('//out')])
-  # Remove prohibited include directories
-  module.local_include_dirs = [d for d in module.local_include_dirs
-                               if d not in local_include_dirs_denylist]
-
-
-def create_modules_from_target(blueprint, gn, gn_target_name, is_test_target):
-  """Generate module(s) for a given GN target.
-
-    Given a GN target name, generate one or more corresponding modules into a
-    blueprint. The only case when this generates >1 module is proto libraries.
-
-    Args:
-        blueprint: Blueprint instance which is being generated.
-        gn: gn_utils.GnParser object.
-        gn_target_name: GN target for module generation.
-    """
-  bp_module_name = label_to_module_name(gn_target_name)
-  if bp_module_name in blueprint.modules:
-    return blueprint.modules[bp_module_name]
-  target = gn.get_target(gn_target_name)
-  log.info('create modules for %s (%s)', target.name, target.type)
-
-  if target.type == 'executable':
-    if target.testonly:
-      module_type = 'cc_test'
-    else:
-      # Can be used for both host and device targets.
-      module_type = 'cc_binary'
-    module = Module(module_type, bp_module_name, gn_target_name)
-  elif target.type in ['static_library', 'source_set']:
-    module = Module('cc_library_static', bp_module_name, gn_target_name)
-  elif target.type == 'shared_library':
-    module = Module('cc_library_shared', bp_module_name, gn_target_name)
-  elif target.type == 'group':
-    # "group" targets are resolved recursively by gn_utils.get_target().
-    # There's nothing we need to do at this level for them.
-    return None
-  elif target.type == 'proto_library':
-    module = create_proto_modules(blueprint, gn, target)
-    if module is None:
-      return None
-  elif target.type == 'action':
-    module = create_action_module(blueprint, target, 'cc_genrule', is_test_target)
-  elif target.type == 'action_foreach':
-    module = create_action_foreach_modules(blueprint, target, is_test_target)
-  elif target.type == 'copy':
-    # TODO: careful now! copy targets are not supported yet, but this will stop
-    # traversing the dependency tree. For //base:base, this is not a big
-    # problem as libicu contains the only copy target which happens to be a
-    # leaf node.
-    return None
-  elif target.type == 'java_group':
-    # Java targets are handled outside of create_modules_from_target.
-    return None
-  else:
-    raise Error('Unknown target %s (%s)' % (target.name, target.type))
-
-  blueprint.add_module(module)
-  module.init_rc = target_initrc.get(target.name, [])
-  module.srcs.update(gn_utils.label_to_path(src)
-                     for src in target.sources if is_supported_source_file(src))
-
-  # Add arch-specific properties
-  for arch_name, arch in target.arch.items():
-    module.target[arch_name].srcs.update(gn_utils.label_to_path(src)
-                                         for src in arch.sources if is_supported_source_file(src))
-
-  module.rtti = target.rtti
-
-  if target.type in gn_utils.LINKER_UNIT_TYPES:
-    set_module_flags(module, module.type, target.cflags, target.defines, target.ldflags, target.libs)
-    set_module_include_dirs(module, target.cflags, target.include_dirs)
-    # TODO: set_module_xxx is confusing, apply similar function to module and target in better way.
-    for arch_name, arch in target.arch.items():
-      # TODO(aymanm): Make libs arch-specific.
-      set_module_flags(module.target[arch_name], module.type,
-                       arch.cflags, arch.defines, arch.ldflags, [])
-      # -Xclang -target-feature -Xclang +mte are used to enable MTE (Memory Tagging Extensions).
-      # Flags which does not start with '-' could not be in the cflags so enabling MTE by
-      # -march and -mcpu Feature Modifiers. MTE is only available on arm64. This is needed for
-      # building //base/allocator/partition_allocator:partition_alloc for arm64.
-      if '+mte' in arch.cflags and arch_name == 'android_arm64':
-        module.target[arch_name].cflags.add('-march=armv8-a+memtag')
-      set_module_include_dirs(module.target[arch_name], arch.cflags, arch.include_dirs)
-
-  module.host_supported = target.host_supported()
-  module.device_supported = target.device_supported()
-
-  if module.is_genrule():
-    module.apex_available.add(tethering_apex)
-
-  if module.is_compiled():
-    # Don't try to inject library/source dependencies into genrules or
-    # filegroups because they are not compiled in the traditional sense.
-    module.defaults = [defaults_module]
-    for lib in target.libs:
-      # Generally library names should be mangled as 'libXXX', unless they
-      # are HAL libraries (e.g., android.hardware.health@2.0) or AIDL c++ / NDK
-      # libraries (e.g. "android.hardware.power.stats-V1-cpp")
-      android_lib = lib if '@' in lib or "-cpp" in lib or "-ndk" in lib \
-        else 'lib' + lib
-      if lib in shared_library_allowlist:
-        module.add_android_shared_lib(android_lib)
-      if lib in static_library_allowlist:
-        module.add_android_static_lib(android_lib)
-
-  # If the module is a static library, export all the generated headers.
-  if module.type == 'cc_library_static':
-    module.export_generated_headers = module.generated_headers
-
-  if module.name == 'cronet_aml_components_cronet_android_cronet':
-    if target.output_name is None:
-      raise Error('Failed to get output_name for libcronet name')
-    # .so file name needs to match with CronetLibraryLoader.java (e.g. libcronet.109.0.5386.0.so)
-    # So setting the output name based on the output_name from the desc.json
-    module.stem = 'lib' + target.output_name
-
-  if module.is_test():
-    # Tests output should be a shared library in the format of 'lib[module_name]'
-    module.stem = 'lib' + target.get_target_name()[
-                          :target.get_target_name().find(gn_utils.TESTING_SUFFIX)]
-
-  # dep_name is an unmangled GN target name (e.g. //foo:bar(toolchain)).
-  # Currently, only one module is generated from target even target has multiple toolchains.
-  # And module is generated based on the first visited target.
-  # Sort deps before iteration to make result deterministic.
-  all_deps = sorted(target.deps | target.source_set_deps | target.transitive_proto_deps)
-  for dep_name in all_deps:
-    # |builtin_deps| override GN deps with Android-specific ones. See the
-    # config in the top of this file.
-    if dep_name in builtin_deps:
-      builtin_deps[dep_name](module, None)
-      continue
-
-    dep_module = create_modules_from_target(blueprint, gn, dep_name, is_test_target)
-
-    if dep_module is None:
-      continue
-    # TODO: Proper dependency check for genrule.
-    # Currently, only propagating genrule dependencies.
-    # Also, currently, all the dependencies are propagated upwards.
-    # in gn, public_deps should be propagated but deps should not.
-    # Not sure this information is available in the desc.json.
-    # Following rule works for adding android_runtime_jni_headers to base:base.
-    # If this doesn't work for other target, hardcoding for specific target
-    # might be better.
-    if module.is_genrule() and dep_module.is_genrule():
-      module.genrule_headers.add(dep_module.name)
-      module.genrule_headers.update(dep_module.genrule_headers)
-
-    # For filegroups, and genrule, recurse but don't apply the
-    # deps.
-    if not module.is_compiled() or module.is_genrule():
-      continue
-
-    # Drop compiled modules that doesn't provide any benefit. This is mostly
-    # applicable to source_sets when converted to cc_static_library, sometimes
-    # the source set only has header files which are dropped so the module becomes empty.
-    if dep_module.is_compiled() and not dep_module.has_input_files():
-      continue
-
-    if dep_module.type == 'cc_library_shared':
-      module.shared_libs.add(dep_module.name)
-    elif dep_module.type == 'cc_library_static':
-      module.static_libs.add(dep_module.name)
-    elif dep_module.type == 'cc_genrule':
-      module.merge_attribute('generated_headers', dep_module, [], 'genrule_headers')
-      module.merge_attribute('srcs', dep_module, [], 'genrule_srcs')
-      module.merge_attribute('shared_libs', dep_module, [], 'genrule_shared_libs')
-      module.merge_attribute('header_libs', dep_module, [], 'genrule_header_libs')
-    elif dep_module.type == 'cc_binary':
-      continue  # Ignore executables deps (used by cmdline integration tests).
-    else:
-      raise Error('Unknown dep %s (%s) for target %s' %
-                  (dep_module.name, dep_module.type, module.name))
-
-  for arch_name, arch in target.arch.items():
-    for dep_name in arch.deps:
-      # |builtin_deps| override GN deps with Android-specific ones. See the
-      # config in the top of this file.
-      if dep_name in builtin_deps:
-        builtin_deps[dep_name](module, arch_name)
-        continue
-      dep_module = create_modules_from_target(blueprint, gn, dep_name, is_test_target)
-      # Arch-specific dependencies currently only include cc_library_static.
-      # Revisit this approach once we need to support more target types.
-      if dep_module.type == 'cc_library_static':
-        if dep_module.has_input_files():
-          module.target[arch_name].static_libs.add(dep_module.name)
-      elif dep_module.type == 'cc_genrule':
-        module.target[arch_name].generated_headers.update(dep_module.genrule_headers)
-        module.target[arch_name].srcs.update(dep_module.genrule_srcs)
-        module.target[arch_name].shared_libs.update(dep_module.genrule_shared_libs)
-        module.target[arch_name].header_libs.update(dep_module.genrule_header_libs)
-      else:
-        raise Error('Unsupported arch-specific dependency %s of target %s with type %s' %
-                    (dep_module.name, target.name, dep_module.type))
-  return module
-
-def create_java_jni_preprocessor(blueprint):
-  bp_module_name = module_prefix + 'java_jni_annotation_preprocessor'
-  module = Module('java_plugin', bp_module_name, '//base/android/jni_generator:jni_processor')
-  module.srcs.update(
-  [
-    "base/android/jni_generator/java/src/org/chromium/jni_generator/JniProcessor.java",
-    # Avoids a circular dependency with base:base_java. This is okay because
-    # no target should ever expect to package an annotation processor.
-    "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
-    "build/android/java/src/org/chromium/build/annotations/MainDex.java",
-    "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
-    "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
-    "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
-    "base/android/java/src/org/chromium/base/JniException.java",
-    ":cronet_aml_build_android_build_config_gen",
-  ])
-  module.static_libs.update({
-      "javapoet",
-      "guava",
-      "auto_service_annotations",
-  })
-  module.processor_class = "org.chromium.jni_generator.JniProcessor"
-  blueprint.add_module(module)
-  return module
-
-def get_java_sources(gn, predicate):
-  java_sources = set()
-  for target_name, sources in gn.java_sources.items():
-    if predicate(target_name):
-      java_sources.update(sources)
-  return java_sources
-
-def get_java_actions(gn, predicate):
-  java_actions = set()
-  for target_name, actions in gn.java_actions.items():
-    if predicate(target_name):
-      java_actions.update(actions)
-  return java_actions
-
-def get_non_api_java_sources(gn):
-  return get_java_sources(gn, lambda name: name != java_api_target_name)
-
-def get_non_api_java_actions(gn):
-  return get_java_actions(gn, lambda name: name != java_api_target_name)
-
-def get_api_java_sources(gn):
-  return get_java_sources(gn, lambda name: name == java_api_target_name)
-
-def get_api_java_actions(gn):
-  return get_java_actions(gn, lambda name: name == java_api_target_name)
-
-def create_java_module(blueprint, gn, is_test_target):
-  bp_module_name = module_prefix + 'java'
-  if is_test_target:
-    bp_module_name += gn_utils.TESTING_SUFFIX
-  module = Module('java_library', bp_module_name, '//gn:java')
-  module.srcs.update([gn_utils.label_to_path(source) for source in get_non_api_java_sources(gn)])
-  module.libs = {
-    "androidx.annotation_annotation",
-    "jsr305",
-    "androidx.annotation_annotation-experimental-nodeps",
-    "framework-connectivity.stubs.module_lib",
-    "framework-connectivity-t.stubs.module_lib",
-    "framework-tethering.stubs.module_lib",
-    "framework-wifi.stubs.module_lib",
-    "framework-mediaprovider.stubs.module_lib",
-  }
-  module.static_libs = {
-    "modules-utils-build_system",
-  }
-  module.aidl["include_dirs"] = {"frameworks/base/core/java/"}
-  module.aidl["local_include_dirs"] = gn.aidl_local_include_dirs
-  module.sdk_version = "module_current"
-  module.min_sdk_version = 30
-  module.apex_available.add(tethering_apex)
-  # TODO: support for this flag is removed upstream in crrev/c/4062652.
-  # Consider reverting this change upstream, or worst-case downstream.  As an
-  # alternative hack, we could rename the generated file to not conflict. This
-  # would be less likely to conflict with upstream changes if the revert is not
-  # accepted.
-  module.javacflags.add("-Aorg.chromium.chrome.skipGenJni")
-  if not is_test_target:
-    module.javacflags.add("-Apackage_prefix=android.net.http.internal")
-  for dep in get_non_api_java_actions(gn):
-    target = gn.get_target(dep)
-    if target.script == '//build/android/gyp/gcc_preprocess.py':
-      module.srcs.add(':' + create_gcc_preprocess_modules(blueprint, target).name)
-    else:
-      module.srcs.add(':' + create_action_module(blueprint, target, 'java_genrule', is_test_target).name)
-  preprocessor_module = create_java_jni_preprocessor(blueprint)
-  module.plugins.add(preprocessor_module.name)
-  blueprint.add_module(module)
-  return module
-
-def create_java_api_module(blueprint, gn):
-  source_module = Module('filegroup', module_prefix + 'api_sources', java_api_target_name)
-  # TODO add the API helpers separately after the main API is checked in and thoroughly reviewed
-  source_module.srcs.update([gn_utils.label_to_path(source)
-                             for source in get_api_java_sources(gn)
-                             if "apihelpers" not in source])
-  source_module.comment += "\n// TODO(danstahr): add the API helpers separately after the main" \
-                           " API is checked in and thoroughly reviewed"
-  source_module.srcs.update([
-    ':' + create_action_module(blueprint, gn.get_target(dep), 'java_genrule', False).name
-    for dep in get_api_java_actions(gn)])
-  blueprint.add_module(source_module)
-  return source_module
-
-def update_jni_registration_module(module, gn):
-  # TODO: java_sources might not contain all the required java files
-  module.srcs.update([gn_utils.label_to_path(source)
-                      for source in get_non_api_java_sources(gn)
-                      if source.endswith('.java')])
-
-def create_blueprint_for_targets(gn, targets, test_targets):
-  """Generate a blueprint for a list of GN targets."""
-  blueprint = Blueprint()
-
-  # Default settings used by all modules.
-  defaults = Module('cc_defaults', defaults_module, '//gn:default_deps')
-  defaults.cflags = [
-      '-DGOOGLE_PROTOBUF_NO_RTTI',
-      '-Wno-error=return-type',
-      '-Wno-non-virtual-dtor',
-      '-Wno-macro-redefined',
-      '-Wno-missing-field-initializers',
-      '-Wno-sign-compare',
-      '-Wno-sign-promo',
-      '-Wno-unused-parameter',
-      '-Wno-null-pointer-subtraction', # Needed to libevent
-      '-Wno-ambiguous-reversed-operator', # needed for icui18n
-      '-Wno-unreachable-code-loop-increment', # needed for icui18n
-      '-fPIC',
-      '-Wno-c++11-narrowing',
-  ]
-  # Chromium builds do not add a dependency for headers found inside the
-  # sysroot, so they are added globally via defaults.
-  defaults.target['android'].header_libs = [
-      'jni_headers',
-  ]
-  defaults.target['android'].shared_libs = [
-      'libmediandk'
-  ]
-  defaults.target['host'].cflags = [
-      # -DANDROID is added by default but target.defines contain -DANDROID if
-      # it's required.  So adding -UANDROID to cancel default -DANDROID if it's
-      # not specified.
-      # Note: -DANDROID is not consistently applied across the chromium code
-      # base, so it is removed unconditionally for host targets.
-      '-UANDROID',
-  ]
-  defaults.stl = 'none'
-  defaults.cpp_std = 'c++17'
-  defaults.min_sdk_version = 29
-  defaults.apex_available.add(tethering_apex)
-  blueprint.add_module(defaults)
-
-  for target in targets:
-    create_modules_from_target(blueprint, gn, target, is_test_target=False)
-
-  for test_target in test_targets:
-    create_modules_from_target(blueprint, gn, test_target + gn_utils.TESTING_SUFFIX, is_test_target=True)
-
-  create_java_api_module(blueprint, gn)
-  java_module = create_java_module(blueprint, gn, is_test_target=False)
-  java_module.libs.add(CRONET_API_MODULE_NAME)
-  java_module_testing = create_java_module(blueprint, gn, is_test_target=True)
-  java_module_testing.libs.add(CRONET_API_MODULE_NAME)
-  for module in blueprint.modules.values():
-    if 'cronet_jni_registration' in module.name:
-      update_jni_registration_module(module, gn)
-
-  # Merge in additional hardcoded arguments.
-  for module in blueprint.modules.values():
-    for key, add_val in additional_args.get(module.name, []):
-      curr = getattr(module, key)
-      if add_val and isinstance(add_val, set) and isinstance(curr, set):
-        curr.update(add_val)
-      elif isinstance(add_val, str) and (not curr or isinstance(curr, str)):
-        setattr(module, key, add_val)
-      elif isinstance(add_val, bool) and (not curr or isinstance(curr, bool)):
-        setattr(module, key, add_val)
-      elif isinstance(add_val, dict) and isinstance(curr, dict):
-        curr.update(add_val)
-      elif isinstance(add_val, dict) and isinstance(curr, Target):
-        curr.__dict__.update(add_val)
-      else:
-        raise Error('Unimplemented type %r of additional_args: %r' %
-                    (type(add_val), key))
-
-  return blueprint
-
-def create_license_module(blueprint):
-  module = Module("license", "external_cronet_license", "LICENSE")
-  module.license_kinds.update({
-      'SPDX-license-identifier-MPL',
-      'SPDX-license-identifier-MPL-1.1',
-      'SPDX-license-identifier-ISC',
-      'SPDX-license-identifier-AFL-2.0',
-      'SPDX-license-identifier-MPL-2.0',
-      'SPDX-license-identifier-BSD',
-      'SPDX-license-identifier-Apache-2.0',
-      'SPDX-license-identifier-BSL-1.0',
-      'SPDX-license-identifier-Unicode-DFS',
-      'SPDX-license-identifier-NCSA',
-      'SPDX-license-identifier-OpenSSL',
-      'SPDX-license-identifier-MIT',
-      "SPDX-license-identifier-ICU",
-      'legacy_unencumbered',
-  })
-  module.license_text.update({
-      "LICENSE",
-      "net/third_party/uri_template/LICENSE",
-      "net/third_party/quiche/src/LICENSE",
-      "base/third_party/symbolize/LICENSE",
-      "base/third_party/superfasthash/LICENSE",
-      "base/third_party/xdg_user_dirs/LICENSE",
-      "base/third_party/double_conversion/LICENSE",
-      "base/third_party/nspr/LICENSE",
-      "base/third_party/dynamic_annotations/LICENSE",
-      "base/third_party/icu/LICENSE",
-      "base/third_party/valgrind/LICENSE",
-      "third_party/brotli/LICENSE",
-      "third_party/protobuf/LICENSE",
-      "third_party/protobuf/third_party/utf8_range/LICENSE",
-      "third_party/metrics_proto/LICENSE",
-      "third_party/boringssl/src/LICENSE",
-      "third_party/boringssl/src/third_party/googletest/LICENSE",
-      "third_party/boringssl/src/third_party/wycheproof_testvectors/LICENSE",
-      "third_party/boringssl/src/third_party/fiat/LICENSE",
-      "third_party/libevent/LICENSE",
-      "third_party/ashmem/LICENSE",
-      "third_party/icu/LICENSE",
-      "third_party/icu/scripts/LICENSE",
-      "third_party/abseil-cpp/LICENSE",
-      "third_party/modp_b64/LICENSE",
-  })
-  default_license = Module("package", "", "PACKAGE")
-  default_license.default_applicable_licenses.add(module.name)
-  blueprint.add_module(module)
-  blueprint.add_module(default_license)
-
-def main():
-  parser = argparse.ArgumentParser(
-      description='Generate Android.bp from a GN description.')
-  parser.add_argument(
-      '--desc',
-      help='GN description (e.g., gn desc out --format=json --all-toolchains "//*".' +
-           'You can specify multiple --desc options for different target_cpu',
-      required=True,
-      action='append'
-  )
-  parser.add_argument(
-      '--extras',
-      help='Extra targets to include at the end of the Blueprint file',
-      default=os.path.join(gn_utils.repo_root(), 'Android.bp.extras'),
-  )
-  parser.add_argument(
-      '--output',
-      help='Blueprint file to create',
-      default=os.path.join(gn_utils.repo_root(), 'Android.bp'),
-  )
-  parser.add_argument(
-      '-v',
-      '--verbose',
-      help='Print debug logs.',
-      action='store_true',
-  )
-  parser.add_argument(
-      'targets',
-      nargs=argparse.REMAINDER,
-      help='Targets to include in the blueprint (e.g., "//:perfetto_tests")'
-  )
-  args = parser.parse_args()
-
-  if args.verbose:
-    log.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s', level=log.DEBUG)
-
-  targets = args.targets or DEFAULT_TARGETS
-  gn = gn_utils.GnParser(builtin_deps)
-  for desc_file in args.desc:
-    with open(desc_file) as f:
-      desc = json.load(f)
-    for target in targets:
-      gn.parse_gn_desc(desc, target)
-    for test_target in DEFAULT_TESTS:
-      gn.parse_gn_desc(desc, test_target, is_test_target=True)
-  blueprint = create_blueprint_for_targets(gn, targets, DEFAULT_TESTS)
-  project_root = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
-  tool_name = os.path.relpath(os.path.abspath(__file__), project_root)
-
-  # Add any proto groups to the blueprint.
-  for l_name, t_names in proto_groups.items():
-    create_proto_group_modules(blueprint, gn, l_name, t_names)
-  create_license_module(blueprint)
-  output = [
-      """// Copyright (C) 2022 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.
-//
-// This file is automatically generated by %s. Do not edit.
-
-build = ["Android.extras.bp"]
-""" % (tool_name)
-  ]
-  blueprint.to_string(output)
-  if os.path.exists(args.extras):
-    with open(args.extras, 'r') as r:
-      for line in r:
-        output.append(line.rstrip("\n\r"))
-
-  out_files = []
-
-  # Generate the Android.bp file.
-  out_files.append(args.output + '.swp')
-  with open(out_files[-1], 'w') as f:
-    f.write('\n'.join(output))
-    # Text files should have a trailing EOL.
-    f.write('\n')
-
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/tools/gn2bp/gen_desc_json.sh b/tools/gn2bp/gen_desc_json.sh
deleted file mode 100755
index bf9b21d..0000000
--- a/tools/gn2bp/gen_desc_json.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-set -x
-
-# Run this script inside a full chromium checkout.
-
-OUT_PATH="out/cronet"
-
-#######################################
-# Apply patches in external/cronet.
-# Globals:
-#   ANDROID_BUILD_TOP
-# Arguments:
-#   None
-#######################################
-function apply_patches() {
-  local -r patch_root="${ANDROID_BUILD_TOP}/external/cronet/patches"
-
-  local upstream_patches
-  upstream_patches=$(ls "${patch_root}/upstream-next")
-  local patch
-  for patch in ${upstream_patches}; do
-    git am --3way "${patch_root}/upstream-next/${patch}"
-  done
-
-  local local_patches
-  local_patches=$(ls "${patch_root}/local")
-  for patch in ${local_patches}; do
-    git am --3way "${patch_root}/local/${patch}"
-  done
-}
-
-#######################################
-# Generate desc.json for a specified architecture.
-# Globals:
-#   OUT_PATH
-# Arguments:
-#   target_cpu, string
-#######################################
-function gn_desc() {
-  local -a gn_args=(
-    "target_os = \"android\""
-    "enable_websockets = false"
-    "disable_file_support = true"
-    "is_component_build = false"
-    "use_crash_key_stubs = true"
-    "use_partition_alloc = false"
-    "include_transport_security_state_preload_list = false"
-    "use_platform_icu_alternatives = true"
-    "default_min_sdk_version = 19"
-    "enable_reporting = true"
-    "use_hashed_jni_names = true"
-    "enable_base_tracing = false"
-    "is_cronet_build = true"
-    "is_debug = false"
-    "is_official_build = true"
-    "use_nss_certs = false"
-    "clang_use_default_sample_profile = false"
-    "media_use_ffmpeg=false"
-    "use_thin_lto=false"
-    "enable_resource_allowlist_generation=false"
-    "enable_jdk_library_desugaring=false"
-    "exclude_unwind_tables=true"
-    "symbol_level=1"
-  )
-  gn_args+=("target_cpu = \"${1}\"")
-
-  # Only set arm_use_neon on arm architectures to prevent warning from being
-  # written to json output.
-  if [[ "$1" = "arm" ]]; then
-    gn_args+=("arm_use_neon = false")
-  fi
-
-  # Configure gn args.
-  gn gen "${OUT_PATH}" --args="${gn_args[*]}"
-
-  # Generate desc.json.
-  local -r out_file="desc_${1}.json"
-  gn desc "${OUT_PATH}" --format=json --all-toolchains "//*" > "${out_file}"
-}
-
-apply_patches
-gn_desc x86
-gn_desc x64
-gn_desc arm
-gn_desc arm64
-
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
deleted file mode 100644
index 4066673..0000000
--- a/tools/gn2bp/gn_utils.py
+++ /dev/null
@@ -1,542 +0,0 @@
-# Copyright (C) 2022 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# A collection of utilities for extracting build rule information from GN
-# projects.
-
-import copy
-import json
-import logging as log
-import os
-import re
-import collections
-
-BUILDFLAGS_TARGET = '//gn:gen_buildflags'
-GEN_VERSION_TARGET = '//src/base:version_gen_h'
-LINKER_UNIT_TYPES = ('executable', 'shared_library', 'static_library', 'source_set')
-JAVA_BANNED_SCRIPTS = [
-    "//build/android/gyp/turbine.py",
-    "//build/android/gyp/compile_java.py",
-    "//build/android/gyp/filter_zip.py",
-    "//build/android/gyp/dex.py",
-    "//build/android/gyp/write_build_config.py",
-    "//build/android/gyp/create_r_java.py",
-    "//build/android/gyp/ijar.py",
-    "//build/android/gyp/create_r_java.py",
-    "//build/android/gyp/bytecode_processor.py",
-    "//build/android/gyp/prepare_resources.py",
-    "//build/android/gyp/aar.py",
-    "//build/android/gyp/zip.py",
-]
-# TODO(primiano): investigate these, they require further componentization.
-ODR_VIOLATION_IGNORE_TARGETS = {
-    '//test/cts:perfetto_cts_deps',
-    '//:perfetto_integrationtests',
-}
-ARCH_REGEX = r'(android_x86_64|android_x86|android_arm|android_arm64|host)'
-RESPONSE_FILE = '{{response_file_name}}'
-TESTING_SUFFIX = "__testing"
-AIDL_INCLUDE_DIRS_REGEX = r'--includes=\[(.*)\]'
-
-def repo_root():
-  """Returns an absolute path to the repository root."""
-  return os.path.join(
-      os.path.realpath(os.path.dirname(__file__)), os.path.pardir)
-
-
-def _clean_string(str):
-  return str.replace('\\', '').replace('../../', '').replace('"', '').strip()
-
-
-def _extract_includes_from_aidl_args(args):
-  for arg in args:
-    is_match = re.match(AIDL_INCLUDE_DIRS_REGEX, arg)
-    if is_match:
-      local_includes = is_match.group(1).split(",")
-      return [_clean_string(local_include) for local_include in local_includes]
-  return []
-
-def label_to_path(label):
-  """Turn a GN output label (e.g., //some_dir/file.cc) into a path."""
-  assert label.startswith('//')
-  return label[2:] or "./"
-
-
-def label_without_toolchain(label):
-  """Strips the toolchain from a GN label.
-
-    Return a GN label (e.g //buildtools:protobuf(//gn/standalone/toolchain:
-    gcc_like_host) without the parenthesised toolchain part.
-    """
-  return label.split('(')[0]
-
-
-def label_to_target_name_with_path(label):
-  """
-  Turn a GN label into a target name involving the full path.
-  e.g., //src/perfetto:tests -> src_perfetto_tests
-  """
-  name = re.sub(r'^//:?', '', label)
-  name = re.sub(r'[^a-zA-Z0-9_]', '_', name)
-  return name
-
-def _is_java_source(src):
-  return os.path.splitext(src)[1] == '.java' and not src.startswith("//out/")
-
-def is_java_action(script, outputs):
-  return (script != "" and script not in JAVA_BANNED_SCRIPTS) and any(
-      [file.endswith(".srcjar") or file.endswith(".java")
-       for file in outputs])
-
-class GnParser(object):
-  """A parser with some cleverness for GN json desc files
-
-    The main goals of this parser are:
-    1) Deal with the fact that other build systems don't have an equivalent
-       notion to GN's source_set. Conversely to Bazel's and Soong's filegroups,
-       GN source_sets expect that dependencies, cflags and other source_set
-       properties propagate up to the linker unit (static_library, executable or
-       shared_library). This parser simulates the same behavior: when a
-       source_set is encountered, some of its variables (cflags and such) are
-       copied up to the dependent targets. This is to allow gen_xxx to create
-       one filegroup for each source_set and then squash all the other flags
-       onto the linker unit.
-    2) Detect and special-case protobuf targets, figuring out the protoc-plugin
-       being used.
-    """
-
-  class Target(object):
-    """Reperesents A GN target.
-
-        Maked properties are propagated up the dependency chain when a
-        source_set dependency is encountered.
-        """
-    class Arch():
-      """Architecture-dependent properties
-        """
-      def __init__(self):
-        self.sources = set()
-        self.cflags = set()
-        self.defines = set()
-        self.include_dirs = set()
-        self.deps = set()
-        self.transitive_static_libs_deps = set()
-        self.source_set_deps = set()
-        self.ldflags = set()
-
-        # These are valid only for type == 'action'
-        self.inputs = set()
-        self.outputs = set()
-        self.args = []
-        self.script = ''
-        self.response_file_contents = ''
-
-    def __init__(self, name, type):
-      self.name = name  # e.g. //src/ipc:ipc
-
-      VALID_TYPES = ('static_library', 'shared_library', 'executable', 'group',
-                     'action', 'source_set', 'proto_library', 'copy', 'action_foreach')
-      assert (type in VALID_TYPES)
-      self.type = type
-      self.testonly = False
-      self.toolchain = None
-
-      # These are valid only for type == proto_library.
-      # This is typically: 'proto', 'protozero', 'ipc'.
-      self.proto_plugin = None
-      self.proto_paths = set()
-      self.proto_exports = set()
-      self.proto_in_dir = ""
-
-      self.sources = set()
-      # TODO(primiano): consider whether the public section should be part of
-      # bubbled-up sources.
-      self.public_headers = set()  # 'public'
-
-      # These are valid only for type == 'action'
-      self.inputs = set()
-      self.outputs = set()
-      self.script = ''
-      self.args = []
-      self.response_file_contents = ''
-
-      # These variables are propagated up when encountering a dependency
-      # on a source_set target.
-      self.cflags = set()
-      self.defines = set()
-      self.deps = set()
-      self.libs = set()
-      self.include_dirs = set()
-      self.ldflags = set()
-      self.source_set_deps = set()  # Transitive set of source_set deps.
-      self.proto_deps = set()
-      self.transitive_proto_deps = set()
-      self.rtti = False
-
-      # TODO: come up with a better way to only run this once.
-      # is_finalized tracks whether finalize() was called on this target.
-      self.is_finalized = False
-      self.arch = dict()
-
-      # This is used to get the name/version of libcronet
-      self.output_name = None
-
-    def host_supported(self):
-      return 'host' in self.arch
-
-    def device_supported(self):
-      return any([name.startswith('android') for name in self.arch.keys()])
-
-    def is_linker_unit_type(self):
-      return self.type in LINKER_UNIT_TYPES
-
-    def __lt__(self, other):
-      if isinstance(other, self.__class__):
-        return self.name < other.name
-      raise TypeError(
-          '\'<\' not supported between instances of \'%s\' and \'%s\'' %
-          (type(self).__name__, type(other).__name__))
-
-    def __repr__(self):
-      return json.dumps({
-          k: (list(sorted(v)) if isinstance(v, set) else v)
-          for (k, v) in self.__dict__.items()
-      },
-                        indent=4,
-                        sort_keys=True)
-
-    def update(self, other, arch):
-      for key in ('cflags', 'defines', 'deps', 'include_dirs', 'ldflags',
-                  'source_set_deps', 'proto_deps', 'transitive_proto_deps',
-                  'libs', 'proto_paths'):
-        self.__dict__[key].update(other.__dict__.get(key, []))
-
-      for key_in_arch in ('cflags', 'defines', 'include_dirs', 'source_set_deps', 'ldflags'):
-        self.arch[arch].__dict__[key_in_arch].update(
-          other.arch[arch].__dict__.get(key_in_arch, []))
-
-    def _finalize_set_attribute(self, key):
-      # Target contains the intersection of arch-dependent properties
-      getattr(self, key)\
-        .update(set.intersection(*[getattr(arch, key) for arch in self.arch.values()]))
-
-      # Deduplicate arch-dependent properties
-      for arch in self.arch.values():
-        getattr(arch, key).difference_update(getattr(self, key))
-
-    def _finalize_non_set_attribute(self, key):
-      # Only when all the arch has the same non empty value, move the value to the target common
-      val = getattr(list(self.arch.values())[0], key)
-      if val and all([val == getattr(arch, key) for arch in self.arch.values()]):
-        setattr(self, key, copy.deepcopy(val))
-        for arch in self.arch.values():
-          getattr(arch, key, None)
-
-    def _finalize_attribute(self, key):
-      val = getattr(self, key)
-      if isinstance(val, set):
-        self._finalize_set_attribute(key)
-      elif isinstance(val, (list, str)):
-        self._finalize_non_set_attribute(key)
-      else:
-        raise TypeError(f'Unsupported type: {type(val)}')
-
-    def finalize(self):
-      """Move common properties out of arch-dependent subobjects to Target object.
-
-        TODO: find a better name for this function.
-        """
-      if self.is_finalized:
-        return
-      self.is_finalized = True
-
-      if len(self.arch) == 0:
-        return
-
-      for key in ('sources', 'cflags', 'defines', 'include_dirs', 'deps', 'source_set_deps',
-                  'inputs', 'outputs', 'args', 'script', 'response_file_contents', 'ldflags'):
-        self._finalize_attribute(key)
-
-    def get_target_name(self):
-      return self.name[self.name.find(":") + 1:]
-
-
-  def __init__(self, builtin_deps):
-    self.builtin_deps = builtin_deps
-    self.all_targets = {}
-    self.linker_units = {}  # Executables, shared or static libraries.
-    self.source_sets = {}
-    self.actions = {}
-    self.proto_libs = {}
-    self.java_sources = collections.defaultdict(set)
-    self.aidl_local_include_dirs = set()
-    self.java_actions = collections.defaultdict(set)
-
-  def _get_response_file_contents(self, action_desc):
-    # response_file_contents are formatted as:
-    # ['--flags', '--flag=true && false'] and need to be formatted as:
-    # '--flags --flag=\"true && false\"'
-    flags = action_desc.get('response_file_contents', [])
-    formatted_flags = []
-    for flag in flags:
-      if '=' in flag:
-        key, val = flag.split('=')
-        formatted_flags.append('%s=\\"%s\\"' % (key, val))
-      else:
-        formatted_flags.append(flag)
-
-    return ' '.join(formatted_flags)
-
-  def _is_java_group(self, type_, target_name):
-    # Per https://chromium.googlesource.com/chromium/src/build/+/HEAD/android/docs/java_toolchain.md
-    # java target names must end in "_java".
-    # TODO: There are some other possible variations we might need to support.
-    return type_ == 'group' and target_name.endswith('_java')
-
-  def _get_arch(self, toolchain):
-    if toolchain == '//build/toolchain/android:android_clang_x86':
-      return 'android_x86'
-    elif toolchain == '//build/toolchain/android:android_clang_x64':
-      return 'android_x86_64'
-    elif toolchain == '//build/toolchain/android:android_clang_arm':
-      return 'android_arm'
-    elif toolchain == '//build/toolchain/android:android_clang_arm64':
-      return 'android_arm64'
-    else:
-      return 'host'
-
-  def get_target(self, gn_target_name):
-    """Returns a Target object from the fully qualified GN target name.
-
-      get_target() requires that parse_gn_desc() has already been called.
-      """
-    # Run this every time as parse_gn_desc can be called at any time.
-    for target in self.all_targets.values():
-      target.finalize()
-
-    return self.all_targets[label_without_toolchain(gn_target_name)]
-
-  def parse_gn_desc(self, gn_desc, gn_target_name, java_group_name=None, is_test_target=False):
-    """Parses a gn desc tree and resolves all target dependencies.
-
-        It bubbles up variables from source_set dependencies as described in the
-        class-level comments.
-        """
-    # Use name without toolchain for targets to support targets built for
-    # multiple archs.
-    target_name = label_without_toolchain(gn_target_name)
-    desc = gn_desc[gn_target_name]
-    type_ = desc['type']
-    arch = self._get_arch(desc['toolchain'])
-
-    if self._is_java_group(type_, target_name):
-      java_group_name = target_name
-
-    if is_test_target:
-      target_name += TESTING_SUFFIX
-
-    target = self.all_targets.get(target_name)
-    if target is None:
-      target = GnParser.Target(target_name, type_)
-      self.all_targets[target_name] = target
-
-    if arch not in target.arch:
-      target.arch[arch] = GnParser.Target.Arch()
-    else:
-      return target  # Target already processed.
-
-    if target.name in self.builtin_deps:
-      # return early, no need to parse any further as the module is a builtin.
-      return target
-
-    target.testonly = desc.get('testonly', False)
-
-    proto_target_type, proto_desc = self.get_proto_target_type(gn_desc, gn_target_name)
-    if proto_target_type is not None:
-      self.proto_libs[target.name] = target
-      target.type = 'proto_library'
-      target.proto_plugin = proto_target_type
-      target.proto_paths.update(self.get_proto_paths(proto_desc))
-      target.proto_exports.update(self.get_proto_exports(proto_desc))
-      target.proto_in_dir = self.get_proto_in_dir(proto_desc)
-      for gn_proto_deps_name in proto_desc.get('deps', []):
-        dep = self.parse_gn_desc(gn_desc, gn_proto_deps_name)
-        target.deps.add(dep.name)
-      target.arch[arch].sources.update(proto_desc.get('sources', []))
-      assert (all(x.endswith('.proto') for x in target.arch[arch].sources))
-    elif target.type == 'source_set':
-      self.source_sets[gn_target_name] = target
-      target.arch[arch].sources.update(desc.get('sources', []))
-    elif target.is_linker_unit_type():
-      self.linker_units[gn_target_name] = target
-      target.arch[arch].sources.update(desc.get('sources', []))
-    elif (desc.get("script", "") in JAVA_BANNED_SCRIPTS
-          or self._is_java_group(target.type, target.name)):
-      # java_group identifies the group target generated by the android_library
-      # or java_library template. A java_group must not be added as a
-      # dependency, but sources are collected.
-      log.debug('Found java target %s', target.name)
-      if target.type == "action":
-        # Convert java actions into java_group and keep the inputs for collection.
-        target.inputs.update(desc.get('inputs', []))
-      target.type = 'java_group'
-    elif target.type in ['action', 'action_foreach']:
-      self.actions[gn_target_name] = target
-      target.arch[arch].inputs.update(desc.get('inputs', []))
-      target.arch[arch].sources.update(desc.get('sources', []))
-      outs = [re.sub('^//out/.+?/gen/', '', x) for x in desc['outputs']]
-      target.arch[arch].outputs.update(outs)
-      target.arch[arch].script = desc['script']
-      target.arch[arch].args = desc['args']
-      target.arch[arch].response_file_contents = self._get_response_file_contents(desc)
-    elif target.type == 'copy':
-      # TODO: copy rules are not currently implemented.
-      self.actions[gn_target_name] = target
-
-    # Default for 'public' is //* - all headers in 'sources' are public.
-    # TODO(primiano): if a 'public' section is specified (even if empty), then
-    # the rest of 'sources' is considered inaccessible by gn. Consider
-    # emulating that, so that generated build files don't end up with overly
-    # accessible headers.
-    public_headers = [x for x in desc.get('public', []) if x != '*']
-    target.public_headers.update(public_headers)
-
-    target.arch[arch].cflags.update(desc.get('cflags', []) + desc.get('cflags_cc', []))
-    target.libs.update(desc.get('libs', []))
-    target.arch[arch].ldflags.update(desc.get('ldflags', []))
-    target.arch[arch].defines.update(desc.get('defines', []))
-    target.arch[arch].include_dirs.update(desc.get('include_dirs', []))
-    target.output_name = desc.get('output_name', None)
-    if "-frtti" in target.arch[arch].cflags:
-      target.rtti = True
-
-    # Recurse in dependencies.
-    for gn_dep_name in desc.get('deps', []):
-      dep = self.parse_gn_desc(gn_desc, gn_dep_name, java_group_name, is_test_target)
-      if dep.type == 'proto_library':
-        target.proto_deps.add(dep.name)
-        target.transitive_proto_deps.add(dep.name)
-        target.proto_paths.update(dep.proto_paths)
-        target.transitive_proto_deps.update(dep.transitive_proto_deps)
-      elif dep.type == 'group':
-        target.update(dep, arch)  # Bubble up groups's cflags/ldflags etc.
-      elif dep.type in ['action', 'action_foreach', 'copy']:
-        if proto_target_type is None:
-          target.arch[arch].deps.add(dep.name)
-      elif dep.is_linker_unit_type():
-        target.arch[arch].deps.add(dep.name)
-      elif dep.type == 'java_group':
-        # Explicitly break dependency chain when a java_group is added.
-        # Java sources are collected and eventually compiled as one large
-        # java_library.
-        pass
-
-      if dep.type in ['static_library', 'source_set']:
-        # Bubble up static_libs and source_set. Necessary, since soong does not propagate
-        # static_libs up the build tree.
-        # Source sets are later translated to static_libraries, so it makes sense
-        # to reuse transitive_static_libs_deps.
-        target.arch[arch].transitive_static_libs_deps.add(dep.name)
-
-      if arch in dep.arch:
-        target.arch[arch].transitive_static_libs_deps.update(
-            dep.arch[arch].transitive_static_libs_deps)
-        target.arch[arch].deps.update(target.arch[arch].transitive_static_libs_deps)
-
-      # Collect java sources. Java sources are kept inside the __compile_java target.
-      # This target can be used for both host and target compilation; only add
-      # the sources if they are destined for the target (i.e. they are a
-      # dependency of the __dex target)
-      # Note: this skips prebuilt java dependencies. These will have to be
-      # added manually when building the jar.
-      if target.name.endswith('__dex'):
-        if dep.name.endswith('__compile_java'):
-          log.debug('Adding java sources for %s', dep.name)
-          java_srcs = [src for src in dep.inputs if _is_java_source(src)]
-          if not is_test_target:
-            # TODO(aymanm): Fix collecting sources for testing modules for java.
-            # Don't collect java source files for test targets.
-            # We only need a specific set of java sources which are hardcoded in gen_android_bp
-            self.java_sources[java_group_name].update(java_srcs)
-      if dep.type in ["action"] and target.type == "java_group":
-        # GN uses an action to compile aidl files. However, this is not needed in soong
-        # as soong can directly have .aidl files in srcs. So adding .aidl files to the java_sources.
-        # TODO: Find a better way/place to do this.
-        if '_aidl' in dep.name:
-          self.java_sources[java_group_name].update(dep.arch[arch].sources)
-          self.aidl_local_include_dirs.update(_extract_includes_from_aidl_args(dep.arch[arch].args))
-        else:
-          if not is_test_target:
-            # TODO(aymanm): Fix collecting actions for testing modules for java.
-            # Don't collect java actions for test targets.
-            self.java_actions[java_group_name].add(dep.name)
-    return target
-
-  def get_proto_exports(self, proto_desc):
-    # exports in metadata will be available for source_set targets.
-    metadata = proto_desc.get('metadata', {})
-    return metadata.get('exports', [])
-
-  def get_proto_paths(self, proto_desc):
-    # import_dirs in metadata will be available for source_set targets.
-    metadata = proto_desc.get('metadata', {})
-    return metadata.get('import_dirs', [])
-
-
-  def get_proto_in_dir(self, proto_desc):
-    args = proto_desc.get('args')
-    return re.sub('^\.\./\.\./', '', args[args.index('--proto-in-dir') + 1])
-
-  def get_proto_target_type(self, gn_desc, gn_target_name):
-    """ Checks if the target is a proto library and return the plugin.
-
-        Returns:
-            (None, None): if the target is not a proto library.
-            (plugin, proto_desc) where |plugin| is 'proto' in the default (lite)
-            case or 'protozero' or 'ipc' or 'descriptor'; |proto_desc| is the GN
-            json desc of the target with the .proto sources (_gen target for
-            non-descriptor types or the target itself for descriptor type).
-        """
-    parts = gn_target_name.split('(', 1)
-    name = parts[0]
-    toolchain = '(' + parts[1] if len(parts) > 1 else ''
-
-    # Descriptor targets don't have a _gen target; instead we look for the
-    # characteristic flag in the args of the target itself.
-    desc = gn_desc.get(gn_target_name)
-    if '--descriptor_set_out' in desc.get('args', []):
-      return 'descriptor', desc
-
-    # Source set proto targets have a non-empty proto_library_sources in the
-    # metadata of the description.
-    metadata = desc.get('metadata', {})
-    if 'proto_library_sources' in metadata:
-      return 'source_set', desc
-
-    # In all other cases, we want to look at the _gen target as that has the
-    # important information.
-    gen_desc = gn_desc.get('%s_gen%s' % (name, toolchain))
-    if gen_desc is None or gen_desc['type'] != 'action':
-      return None, None
-    if gen_desc['script'] != '//tools/protoc_wrapper/protoc_wrapper.py':
-      return None, None
-    plugin = 'proto'
-    args = gen_desc.get('args', [])
-    for arg in (arg for arg in args if arg.startswith('--plugin=')):
-      # |arg| at this point looks like:
-      #  --plugin=protoc-gen-plugin=gcc_like_host/protozero_plugin
-      # or
-      #  --plugin=protoc-gen-plugin=protozero_plugin
-      plugin = arg.split('=')[-1].split('/')[-1].replace('_plugin', '')
-    return plugin, gen_desc
diff --git a/tools/gn2bp/update_results.sh b/tools/gn2bp/update_results.sh
deleted file mode 100755
index a464604..0000000
--- a/tools/gn2bp/update_results.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-# This script is expected to run after gen_android_bp is modified.
-#
-#   ./update_result.sh
-#
-# TARGETS contains targets which are supported by gen_android_bp and
-# this script generates Android.bp.swp from TARGETS.
-# This makes it easy to realize unintended impact/degression on
-# previously supported targets.
-
-set -eux
-
-BASEDIR=$(dirname "$0")
-$BASEDIR/gen_android_bp --desc $BASEDIR/desc_x64.json --desc $BASEDIR/desc_x86.json \
---desc $BASEDIR/desc_arm.json --desc $BASEDIR/desc_arm64.json --out $BASEDIR/Android.bp